Estilos
Opciones de texto
Todo el estilo de texto se aplica mediante opciones funcionales en c.Text():
c.Text("Styled text",
template.FontSize(18),
template.Bold(),
template.TextColor(pdf.RGBHex(0x1A237E)),
)
Opciones de texto disponibles
| Opcion | Descripcion |
|---|---|
FontSize(size) | Tamano de fuente en puntos (predeterminado: 12) |
Bold() | Peso negrita |
Italic() | Estilo cursiva |
FontFamily(name) | Usar una familia de fuentes registrada |
TextColor(color) | Color de primer plano del texto |
BgColor(color) | Color de fondo del texto |
AlignLeft() | Alineacion izquierda (predeterminado) |
AlignCenter() | Alineacion centrada |
AlignRight() | Alineacion derecha |
Underline() | Decoracion de subrayado |
Strikethrough() | Decoracion de tachado |
LetterSpacing(pts) | Espacio adicional entre caracteres |
TextIndent(value) | Sangria de primera linea |
Colores
gpdf soporta multiples modelos de color:
Colores predefinidos
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) |
Colores RGB (flotante)
Los valores RGB van 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)))
Colores hexadecimales
Use codigos de color hexadecimales estandar:
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 grises
Valores de 0.0 (negro) a 1.0 (blanco):
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)))
Colores CMYK
Para salida optimizada para impresion:
c.Text("CMYK text", template.TextColor(pdf.CMYK(0, 1, 1, 0))) // Red in CMYK
Colores de fondo
Aplique muestras de color de fondo con 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) │
└───────────┴───────────┴───────────┴───────────┘
Decoracion de texto
Subrayado
c.Text("Underlined text for emphasis", template.Underline())
Tachado
c.Text("Strikethrough text for deletions", template.Strikethrough())
Decoraciones 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 │ ← subrayado
│ Strikethrough text for deletions │ ← linea a traves
│ Combined underline and strikethrough │ ← ambos
│ Colored underlined text │ ← azul, subrayado
│ Bold underlined heading │ ← negrita, subrayado
└─────────────────────────────────────────────┘
Espaciado entre letras
Controle el espacio 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 │ ← ligeramente espaciado
│ 3 p t l e t t e r s p a c i n g │ ← mas espaciado
│ 5 p t l e t t e r s p a c i n g │ ← muy espaciado
│ Tight spacing (-0.5pt) │ ← comprimido
└─────────────────────────────────────────────┘
Sangria de texto
Agregue sangria de primera linea a los parrafos:
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. │
└─────────────────────────────────────────────┘
Siguientes pasos
- Fuentes — Fuentes personalizadas y soporte CJK
- Encabezados y pies de pagina — Contenido a nivel de pagina
- Elementos — Todos los tipos de elementos de contenido