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

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 informes PDF en PHP: eligiendo una biblioteca

La creación de documentos PDF es una de las tareas más demandadas en el desarrollo web. Facturas, actas, informes estadísticos, listas de precios: todo esto a menudo debe generarse dinámicamente en el lado del servidor. PHP ofrece varias bibliotecas maduras para la generación de PDF. En este artículo, analizaremos las tres herramientas más populares: FPDF, TCPDF y Dompdf, y también proporcionaremos ejemplos prácticos de código.



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

FPDF es una biblioteca simple que no requiere dependencias externas. Es ideal para informes básicos: texto, tablas, imágenes simples. Características principales:

  • Funciona sin instalar extensiones adicionales (excepto la GD estándar para imágenes).
  • Soporta UTF-8 a través de un plugin separado (tFPDF) o conversión manual de fuentes.
  • Excelente rendimiento en documentos simples.

Ejemplo de creación de un informe PDF simple con tabla:

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Informe de ventas', 0, 1);$pdf->SetFont('Arial', '', 12);

// Encabezados de tabla$pdf->Cell(40, 10, 'Producto', 1);$pdf->Cell(30, 10, 'Cantidad', 1);$pdf->Cell(40, 10, 'Precio', 1);$pdf->Ln();

// Datos$pdf->Cell(40, 10, 'Portátil', 1);$pdf->Cell(30, 10, '5', 1);$pdf->Cell(40, 10, '45000 RUB', 1);$pdf->Ln();$pdf->Cell(40, 10, 'Ratón', 1);$pdf->Cell(30, 10, '10', 1);$pdf->Cell(40, 10, '1200 RUB', 1);

$pdf->Output('D', 'report.pdf');?>


2. TCPDF — herramienta potente para informes complejos

TCPDF es una versión mejorada de FPDF con soporte para UTF-8, CSS, etiquetas HTML, códigos QR, firmas digitales y mucho más. Se recomienda para:

  • Documentos con cirílico y otras fuentes no latinas.
  • Informes con maquetación anidada (encabezados y pies de página, tablas multipágina).
  • Generación de PDF/A para archivado.

Ejemplo de uso de marcado HTML en TCPDF:

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

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('Desarrollador');$pdf->SetTitle('Informe complejo');

$pdf->AddPage();$html = '<h2>Estadísticas del mes</h2><table border="1" cellpadding="5"><tr><th>Parámetro</th><th>Valor</th></tr><tr><td>Visitantes</td><td>12 450</td></tr><tr><td>Pedidos</td><td>342</td></tr></table><p>Generado <strong>automáticamente</strong>.</p>';

$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('stat.pdf', 'I');?>


3. Dompdf — generación desde HTML/CSS

Dompdf es una biblioteca única que renderiza PDF a partir de HTML y CSS comunes. Es la opción ideal si ya tienes la maquetación del informe (por ejemplo, para imprimir desde el navegador). Soporta:

  • CSS 2.1 y parcialmente CSS 3 (float, position, border-radius).
  • Inserción de imágenes (base64 o por URL).
  • Tablas, listas, documentos multipágina.

Ejemplo de conversión de una plantilla HTML a PDF:

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<html><head>

Recommendations