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
    )