Generación de PDF en PHP: revisión de bibliotecas y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

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/fpdf


Ejemplo: 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/tcpdf


Ejemplo: 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/dompdf


Ejemplo: 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

Recommendations