Generación de PDF en PHP: bibliotecas, herramientas 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 herramientas



La creación de documentos PDF es una de las tareas frecuentes en el desarrollo web. PHP ofrece varias bibliotecas maduras que permiten generar PDF a partir de HTML, datos dinámicos o directamente mediante dibujo. En este artículo revisaremos cuatro bibliotecas principales: TCPDF, FPDF, Dompdf y mPDF, sus características, ejemplos de uso y recomendaciones para elegir en un sitio educativo.



1. TCPDF — el estándar industrial



TCPDF es una de las bibliotecas más potentes para generar PDF en PHP. Soporta Unicode, fuentes TrueType, OpenType, protección con contraseña, marcas de agua, códigos QR y mucho más. Es ideal para crear informes complejos, facturas, certificados.



Instalación: mediante Composer: composer require tecnickcom/tcpdf



Ejemplo de creación de un PDF simple:



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

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$pdf->SetCreator('PythonLib.ru');$pdf->SetAuthor('Autor');$pdf->SetTitle('Ejemplo TCPDF');$pdf->SetSubject('Generación de PDF');

$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, '¡Hola, mundo! Este es un PDF desde TCPDF.', 0, 1);

$pdf->Output('example_tcpdf.pdf', 'I');?>


2. FPDF — ligera y rápida



FPDF es una biblioteca clásica para documentos PDF simples. No requiere la instalación de extensiones adicionales y es muy fácil de aprender. Es adecuada para crear tablas, informes simples, facturas.



Instalación: descargar desde fpdf.org o mediante Composer: composer require setasign/fpdf



Ejemplo con tabla:



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

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 12);

// Encabezados de tabla$pdf->Cell(40, 10, 'Nombre', 1);$pdf->Cell(40, 10, 'Apellido', 1);$pdf->Cell(40, 10, 'Edad', 1);$pdf->Ln();

$pdf->SetFont('Arial', '', 10);$pdf->Cell(40, 10, 'Iván', 1);$pdf->Cell(40, 10, 'Petrov', 1);$pdf->Cell(40, 10, '25', 1);

$pdf->Output('example_fpdf.pdf', 'I');?>


3. Dompdf — de HTML a PDF



Dompdf permite convertir HTML+CSS a PDF. Esto es útil si ya tienes el maquetado de páginas (por ejemplo, una factura o un artículo). Soporta CSS 2.1 y parcialmente CSS 3, fuentes, imágenes.



Instalación: composer require dompdf/dompdf



Ejemplo de conversión de HTML:



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

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<h1 style="color: #3498db;">Título del PDF</h1><p>Este documento fue creado desde HTML con Dompdf.</p><table border="1" cellpadding="5"> <tr><th>Columna 1</th><th>Columna 2</th></tr> <tr><td>Dato 1</td><td>Dato 2</td></tr></table>';

$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('example_dompdf.pdf', ['Attachment' => 0]);?>


4. mPDF — potente convertidor de HTML



mPDF es otra biblioteca para convertir HTML a PDF. Soporta mejor que Dompdf CSS, Unicode, fuentes orientales, creación de tabla de contenido, encabezados y pies de página. Es excelente para libros, revistas, documentos complejos.



Instalación: composer require mpdf/mpdf



Ejemplo con encabezados y pies de página:



<?                    

Recommendations