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
| Opcao | Descricao |
|---|---|
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 │
└─────────────────────────────────────────┘
| Constante | Valor |
|---|---|
pdf.Black | Gray(0) |
pdf.White | Gray(1) |
pdf.Red | RGB(1, 0, 0) |
pdf.Green | RGB(0, 1, 0) |
pdf.Blue | RGB(0, 0, 1) |
pdf.Yellow | RGB(1, 1, 0) |
pdf.Cyan | RGB(0, 1, 1) |
pdf.Magenta | RGB(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
- Fontes — Fontes personalizadas e suporte CJK
- Cabecalhos e Rodapes — Conteudo em nivel de pagina
- Elementos — Todos os tipos de elementos de conteudo