Generación de PDF en PHP: mejores 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 de bibliotecas y ejemplos prácticos



La creación de documentos PDF es una de las tareas comunes en el desarrollo web. Desde facturas e informes hasta certificados y libros, el PDF sigue siendo un formato universal para el intercambio de documentos. En PHP existen varias bibliotecas potentes que permiten generar PDF tanto desde HTML como mediante programación. En este artículo analizaremos cuatro herramientas populares: TCPDF, FPDF, Dompdf y mPDF.



1. FPDF — clásico ligero y rápido



FPDF es una de las bibliotecas más antiguas y simples. No requiere la instalación de extensiones adicionales (excepto GD). Su principal ventaja es el minimalismo y la velocidad. FPDF trabaja directamente con coordenadas, lo que brinda control total sobre la ubicación de los elementos.



Ejemplo de creación de un PDF simple:

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, '¡Hola, mundo!');$pdf->Output();?>


Ventajas:

  • Tamaño muy pequeño (alrededor de 100 KB)
  • No requiere dependencias externas
  • Soporte UTF-8 mediante fuentes separadas


Desventajas:

  • Trabajo complejo con HTML
  • Soporte limitado de CSS


2. TCPDF — potente y funcional



TCPDF es una versión mejorada de FPDF con soporte para UTF-8, HTML, CSS, imágenes, códigos QR, firmas digitales y mucho más. Es la opción estándar para documentos complejos.



Ejemplo con HTML:

<?phprequire_once('tcpdf/tcpdf.php');

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->AddPage();$pdf->writeHTML('<h1>Título</h1><p>Este es un párrafo con texto <b>negrita</b>.</p>');$pdf->Output('example.pdf', 'I');?>


Características:

  • Soporte completo de Unicode y RTL (árabe, hebreo)
  • Fuentes integradas (DejaVu, FreeSerif)
  • Soporte de SVG, JavaScript, formularios


3. Dompdf — generación desde HTML/CSS



Dompdf convierte HTML y CSS en PDF. Es la opción ideal si ya tienes el maquetado de una página o una plantilla. Dompdf admite la mayoría de las propiedades CSS, pero no todas (por ejemplo, Flexbox y Grid pueden funcionar incorrectamente).



Ejemplo:

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<h2 style="color:red;">Título rojo</h2><p>Texto con márgenes.</p>';$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream("document.pdf");?>


Ventajas:

  • Simplicidad: escribes HTML, obtienes PDF
  • Buen soporte para tablas e imágenes


Desventajas:

  • Requiere PHP 7.1+ y las extensiones mbstring, dom
  • Los diseños CSS complejos pueden romperse


4. mPDF — enfoque híbrido



mPDF es una biblioteca que combina las capacidades de TCPDF y Dompdf. Funciona excelentemente con HTML y CSS, soporta Unicode, tablas, encabezados y pies de página, marcas de agua. mPDF es especialmente bueno para crear libros y revistas.



Ejemplo con CSS:

<?phprequire_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \\Mpdf\\Mpdf();$html = '<div style="border:1px solid #000; padding:10px;">Contenido del bloque</div>';$mpdf->WriteHTML($html);$mpdf->Output('output.pdf', 'I');?>


Ventajas:

  • Excelente soporte de CSS 2.1 y parcialmente CSS3
  • <

Recommendations