gui-sparim's picture
Upload 44 files
8d6c767 verified
"""
Formatadores de títulos e seções.
"""
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from .paragraph import criar_paragrafo_formatado
def add_heading_custom(doc: Document, text: str, level: int = 1):
"""Adiciona título customizado."""
configs = {
1: {'tamanho': 14, 'antes': 18, 'depois': 12},
2: {'tamanho': 12, 'antes': 12, 'depois': 6},
}
cfg = configs.get(level, {'tamanho': 11, 'antes': 6, 'depois': 6})
return criar_paragrafo_formatado(
doc, text, negrito=True, sublinhado=True, tamanho=cfg['tamanho'],
espaco_antes=cfg['antes'], espaco_depois=cfg['depois'],
alinhamento=WD_ALIGN_PARAGRAPH.LEFT
)
def add_section_title(doc: Document, number: str, text: str):
"""Adiciona título de seção principal (ex: 1. SOLICITAÇÃO)."""
return criar_paragrafo_formatado(
doc, f"{number}. {text}", negrito=True, tamanho=12,
espaco_antes=18, espaco_depois=12, alinhamento=WD_ALIGN_PARAGRAPH.LEFT
)
def add_subsection_title(doc: Document, number: str, text: str):
"""Adiciona título de subseção (ex: 1.1 Considerações)."""
return criar_paragrafo_formatado(
doc, f"{number} {text}", negrito=True, tamanho=11,
espaco_antes=12, espaco_depois=6, recuo_esq=0.3,
alinhamento=WD_ALIGN_PARAGRAPH.LEFT
)
def add_subsubsection_title(doc: Document, number: str, text: str):
"""Adiciona título de sub-subseção (ex: 3.2.1)."""
return criar_paragrafo_formatado(
doc, f"{number} {text}", negrito=True, tamanho=11,
espaco_antes=10, espaco_depois=4, recuo_esq=0.5,
alinhamento=WD_ALIGN_PARAGRAPH.LEFT
)
def add_subsubsubsection_title(doc: Document, number: str, text: str):
"""Adiciona título de sub-sub-subseção (ex: 3.2.1.1)."""
return criar_paragrafo_formatado(
doc, f"{number} {text}", negrito=True, tamanho=10,
espaco_antes=8, espaco_depois=4, recuo_esq=0.7,
alinhamento=WD_ALIGN_PARAGRAPH.LEFT
)