""" 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 )