Generación de PDF en PHP: revisión completa de herramientas y bibliotecas
La generación de documentos PDF en el lado del servidor es una de las tareas más comunes en el desarrollo web. Desde facturas e informes hasta certificados y libros, el formato PDF sigue siendo el estándar para el flujo de documentos. En PHP existen varias bibliotecas maduras, cada una con sus propias fortalezas. En este artículo analizaremos cuatro herramientas principales: FPDF, TCPDF, Dompdf y mPDF, proporcionaremos ejemplos de código y ayudaremos a elegir la solución adecuada para su proyecto.
1. FPDF — biblioteca ligera y rápida
FPDF es una de las bibliotecas más antiguas y populares para generar PDF en PHP. No requiere dependencias externas, funciona rápido y es ideal para documentos simples: albaranes, recibos, actas.
Instalación
composer require setasign/fpdfEjemplo: PDF simple con texto e imagen
<?phprequire_once 'vendor/autoload.php';
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, '¡Hola, mundo!');$pdf->Image('logo.png', 10, 20, 30);$pdf->Output();?>FPDF soporta:
- Trabajo con diferentes fuentes (TrueType, Type1)
- Creación de tablas, celdas multilínea
- Inserción de imágenes (JPEG, PNG, GIF)
- Numeración de páginas, encabezados y pies de página
Desventaja: soporte limitado de HTML y CSS — todos los elementos deben crearse mediante programación.
2. TCPDF — herramienta potente para documentos complejos
TCPDF es una versión mejorada de FPDF que añade soporte para Unicode, etiquetas HTML, SVG, firmas digitales, códigos QR y mucho más. Es excelente para crear facturas, certificados, informes con tablas.
Instalación
composer require tecnickcom/tcpdfEjemplo: PDF con contenido HTML y tabla
<?phprequire_once 'vendor/autoload.php';
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->AddPage();$html = '<h1>Título</h1><table border="1"><tr><td>Celda 1</td><td>Celda 2</td></tr></table>';$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('example.pdf', 'I');?>Características clave de TCPDF:
- Soporte completo de Unicode (UTF-8) y cirílico
- Plantillas integradas, numeración de páginas
- Gráficos vectoriales (SVG, formularios PDF)
- Firmas digitales, cifrado
- Soporte de JavaScript en PDF
3. Dompdf — generación a partir de HTML/CSS
Dompdf permite crear PDF a partir de marcado HTML, procesando CSS (incluyendo Flexbox, Grid, consultas de medios). Es ideal si ya tiene plantillas web o desea convertir rápidamente una página HTML en PDF.
Instalación
composer require dompdf/dompdfEjemplo: PDF a partir de una cadena HTML
<?phpuse Dompdf\\Dompdf;
require_once 'vendor/autoload.php';
$dompdf = new Dompdf();$html = '<h2 style="color:blue;">¡Hola desde Dompdf!</h2><p>Este es un PDF generado desde HTML.</p>';$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream("document.pdf");?>Características de Dompdf:
- Soporte de CSS 2.1 y parcialmente CSS3
- Trabajo con imágenes, fuentes (locales y Google Fonts)
- Soporte integrado de cirílico al usar las fuentes correctas
- Integración sencilla con frameworks (Laravel, Symfony)
Importante: para diseños complejos con JavaScript o anima
También en la biblioteca
Biblioteca GraphQL JavaScript (Node.js): Guía completa de Apollo Server y herramientas
Caché en Rust: Redis, Memcached y soluciones integradas
Caché en TypeScript: Redis, Memcached y soluciones en memoria
Geolocalización y mapas en Kotlin: bibliotecas, herramientas y ejemplos