Spaces:
Sleeping
Sleeping
File size: 2,034 Bytes
5240148 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | """
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
)
|