Formato de texto
Demuestra el rango completo de formato de texto: familias de fuentes, estilos bold/italic, tamaños en puntos, colores RGB, alineación via el enum Alignment y párrafos multi-línea.
Ejemplo completo
php
<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use TcpdfNext\Document;
use TcpdfNext\Enums\Alignment;
Document::create()
->setTitle('Text Formatting')
->addPage()
// -- Familias de fuentes ---------------------------------------------------
->setFont('helvetica', style: 'B', size: 18)
->setTextColor(33, 37, 41)
->cell(0, 12, 'Font Families', newLine: true)
->setFont('helvetica', size: 12)
->cell(0, 8, 'Helvetica -- clean sans-serif', newLine: true)
->setFont('times', size: 12)
->cell(0, 8, 'Times -- classic serif', newLine: true)
->setFont('courier', size: 12)
->cell(0, 8, 'Courier -- monospace', newLine: true)
// -- Estilos ----------------------------------------------------------
->setFont('helvetica', style: 'B', size: 18)
->cell(0, 16, 'Font Styles', newLine: true)
->setFont('helvetica', size: 12)
->cell(0, 8, 'Regular text', newLine: true)
->setFont('helvetica', style: 'B', size: 12)
->cell(0, 8, 'Bold text', newLine: true)
->setFont('helvetica', style: 'I', size: 12)
->cell(0, 8, 'Italic text', newLine: true)
->setFont('helvetica', style: 'BI', size: 12)
->cell(0, 8, 'Bold + Italic text', newLine: true)
// -- Tamaños -----------------------------------------------------------
->setFont('helvetica', style: 'B', size: 18)
->cell(0, 16, 'Font Sizes', newLine: true)
->setFont('helvetica', size: 8)
->cell(0, 6, '8 pt -- fine print', newLine: true)
->setFont('helvetica', size: 12)
->cell(0, 8, '12 pt -- body text', newLine: true)
->setFont('helvetica', size: 20)
->cell(0, 12, '20 pt -- subheading', newLine: true)
->setFontSize(28)
->cell(0, 16, '28 pt -- heading', newLine: true)
// -- Colores ----------------------------------------------------------
->setFont('helvetica', style: 'B', size: 18)
->setTextColor(33, 37, 41)
->cell(0, 16, 'Text Colors', newLine: true)
->setFont('helvetica', size: 12)
->setTextColor(220, 53, 69)
->cell(0, 8, 'Red (220, 53, 69)', newLine: true)
->setTextColor(25, 135, 84)
->cell(0, 8, 'Green (25, 135, 84)', newLine: true)
->setTextColor(13, 110, 253)
->cell(0, 8, 'Blue (13, 110, 253)', newLine: true)
->setTextColor(33, 37, 41)
// -- Alineación -------------------------------------------------------
->setFont('helvetica', style: 'B', size: 18)
->cell(0, 16, 'Text Alignment', newLine: true)
->setFont('helvetica', size: 12)
->cell(0, 8, 'Left-aligned (default)', align: Alignment::Left, newLine: true)
->cell(0, 8, 'Center-aligned', align: Alignment::Center, newLine: true)
->cell(0, 8, 'Right-aligned', align: Alignment::Right, newLine: true)
// -- Párrafo multi-línea --------------------------------------------
->setFont('helvetica', style: 'B', size: 18)
->cell(0, 16, 'Multi-Line Text', newLine: true)
->setFont('helvetica', size: 11)
->multiCell(
width: 0,
height: 7,
text: "TCPDF-Next wraps text automatically with multiCell().\n"
. "Use the Alignment enum for justified, left, center, or right alignment.\n"
. "Line spacing is controlled by the height parameter.",
align: Alignment::Justified,
)
->save(__DIR__ . '/text-formatting.pdf');
echo 'PDF created.' . PHP_EOL;Conceptos clave
Caracteres de estilo
| Carácter | Significado |
|---|---|
| (vacío) | Regular |
B | Bold |
I | Italic |
BI | Bold + Italic |
setTextColor(r, g, b)
Acepta enteros RGB 0--255. Llámalo antes de cualquier método de escritura de texto:
php
->setTextColor(13, 110, 253) // blueEnum Alignment
| Valor | Efecto |
|---|---|
Alignment::Left | Alineado a la izquierda (predeterminado) |
Alignment::Center | Centrado |
Alignment::Right | Alineado a la derecha |
Alignment::Justified | Justificado (solo multiCell) |
cell() vs multiCell()
cell()-- línea única, sin ajuste de línea.multiCell()-- ajusta el texto dentro del ancho dado y soporta justificación.
Salida
El PDF generado contiene una página mostrando tres familias de fuentes, cuatro variantes de estilo, cuatro tamaños, tres colores, tres modos de alineación y un párrafo justificado.