Estilizacao

Opcoes de Texto

Toda estilizacao de texto e aplicada por meio de opcoes funcionais em c.Text():

c.Text("Styled text",
    template.FontSize(18),
    template.Bold(),
    template.TextColor(pdf.RGBHex(0x1A237E)),
)

Opcoes de Texto Disponiveis

OpcaoDescricao
FontSize(size)Tamanho da fonte em pontos (padrao: 12)
Bold()Peso negrito
Italic()Estilo italico
FontFamily(name)Usar uma familia de fonte registrada
TextColor(color)Cor do texto (primeiro plano)
BgColor(color)Cor de fundo do texto
AlignLeft()Alinhamento a esquerda (padrao)
AlignCenter()Alinhamento centralizado
AlignRight()Alinhamento a direita
Underline()Decoracao sublinhado
Strikethrough()Decoracao tachado
LetterSpacing(pts)Espaco extra entre caracteres
TextIndent(value)Recuo da primeira linha

Cores

gpdf suporta multiplos modelos de cores:

Cores Predefinidas

c.Text("Red", template.TextColor(pdf.Red))
c.Text("Green", template.TextColor(pdf.Green))
c.Text("Blue", template.TextColor(pdf.Blue))
c.Text("Yellow", template.TextColor(pdf.Yellow))
c.Text("Cyan", template.TextColor(pdf.Cyan))
c.Text("Magenta", template.TextColor(pdf.Magenta))
┌─────────────────────────────────────────┐
│  Red       ← red                        │
│  Green     ← green                      │
│  Blue      ← blue                       │
│  Yellow    ← yellow                     │
│  Cyan      ← cyan                       │
│  Magenta   ← magenta                    │
└─────────────────────────────────────────┘
ConstanteValor
pdf.BlackGray(0)
pdf.WhiteGray(1)
pdf.RedRGB(1, 0, 0)
pdf.GreenRGB(0, 1, 0)
pdf.BlueRGB(0, 0, 1)
pdf.YellowRGB(1, 1, 0)
pdf.CyanRGB(0, 1, 1)
pdf.MagentaRGB(1, 0, 1)

Cores RGB (Float)

Valores RGB variam de 0.0 a 1.0:

c.Text("Orange", template.TextColor(pdf.RGB(1.0, 0.5, 0.0)))
c.Text("Purple", template.TextColor(pdf.RGB(0.5, 0.0, 0.5)))
c.Text("Teal", template.TextColor(pdf.RGB(0.0, 0.5, 0.5)))

Cores Hex

Use codigos de cor hex padrao:

c.Text("Coral", template.TextColor(pdf.RGBHex(0xFF6B6B)))
c.Text("Turquoise", template.TextColor(pdf.RGBHex(0x4ECDC4)))
c.Text("Sky Blue", template.TextColor(pdf.RGBHex(0x45B7D1)))
c.Text("Sage", template.TextColor(pdf.RGBHex(0x96CEB4)))

Escala de Cinza

Valores de 0.0 (preto) a 1.0 (branco):

c.Text("Black", template.TextColor(pdf.Gray(0.0)))
c.Text("Dark gray", template.TextColor(pdf.Gray(0.3)))
c.Text("Medium gray", template.TextColor(pdf.Gray(0.5)))
c.Text("Light gray", template.TextColor(pdf.Gray(0.7)))

Cores CMYK

Para saida otimizada para impressao:

c.Text("CMYK text", template.TextColor(pdf.CMYK(0, 1, 1, 0))) // Red in CMYK

Cores de Fundo

Aplique amostras de cores de fundo com BgColor():

page.AutoRow(func(r *template.RowBuilder) {
    r.Col(3, func(c *template.ColBuilder) {
        c.Text(" Red ", template.TextColor(pdf.White), template.BgColor(pdf.Red))
    })
    r.Col(3, func(c *template.ColBuilder) {
        c.Text(" Green ", template.TextColor(pdf.White), template.BgColor(pdf.Green))
    })
    r.Col(3, func(c *template.ColBuilder) {
        c.Text(" Blue ", template.TextColor(pdf.White), template.BgColor(pdf.Blue))
    })
    r.Col(3, func(c *template.ColBuilder) {
        c.Text(" Yellow ", template.BgColor(pdf.Yellow))
    })
})
┌───────────┬───────────┬───────────┬───────────┐
│ ██ Red ██ │ █ Green █ │ ██ Blue █ │  Yellow   │
│  (white)  │  (white)  │  (white)  │  (black)  │
└───────────┴───────────┴───────────┴───────────┘

Decoracao de Texto

Sublinhado

c.Text("Underlined text for emphasis", template.Underline())

Tachado

c.Text("Strikethrough text for deletions", template.Strikethrough())

Decoracoes Combinadas

c.Text("Combined underline and strikethrough",
    template.Underline(), template.Strikethrough())

c.Text("Colored underlined text",
    template.Underline(),
    template.TextColor(pdf.RGBHex(0x1565C0)),
    template.FontSize(14))

c.Text("Bold underlined heading",
    template.Bold(), template.Underline(), template.FontSize(16))
┌─────────────────────────────────────────────┐
│  Normal text without decoration             │
│  Underlined text for emphasis               │  ← sublinhado
│  Strikethrough text for deletions           │  ← riscado
│  Combined underline and strikethrough       │  ← ambos
│  Colored underlined text                    │  ← azul, sublinhado
│  Bold underlined heading                    │  ← negrito, sublinhado
└─────────────────────────────────────────────┘

Espacamento entre Letras

Controle o espaco entre caracteres:

c.Text("Normal spacing (default)")
c.Text("1pt letter spacing", template.LetterSpacing(1))
c.Text("3pt letter spacing", template.LetterSpacing(3))
c.Text("5pt letter spacing", template.LetterSpacing(5))
c.Text("Tight spacing (-0.5pt)", template.LetterSpacing(-0.5))
┌─────────────────────────────────────────────┐
│  Normal spacing (default)                   │
│  1 p t  l e t t e r  s p a c i n g         │  ← levemente espacado
│  3 p t   l e t t e r   s p a c i n g       │  ← mais espacado
│  5 p t    l e t t e r    s p a c i n g     │  ← muito espacado
│  Tight spacing (-0.5pt)                     │  ← comprimido
└─────────────────────────────────────────────┘

Recuo de Texto

Adicione recuo na primeira linha dos paragrafos:

c.Text("This paragraph has a 24pt first-line indent. "+
    "The rest of the text wraps normally without indentation.",
    template.TextIndent(document.Pt(24)))

c.Text("This paragraph has a larger 48pt indent. "+
    "Useful for formal or academic document styling.",
    template.TextIndent(document.Pt(48)))
┌─────────────────────────────────────────────┐
│      This paragraph has a 24pt first-line   │
│  indent. The rest of the text wraps         │
│  normally without indentation.              │
│                                             │
│              This paragraph has a larger    │
│  48pt indent. Useful for formal or          │
│  academic document styling.                 │
└─────────────────────────────────────────────┘

Proximos Passos