DomPDF para PHP: guía completa con 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

Introducción a DomPDF: qué es y para qué sirve

\n\n

DomPDF es una potente y popular biblioteca para el lenguaje PHP, diseñada para generar documentos PDF a partir de marcado HTML. La idea principal de la biblioteca es permitir a los desarrolladores crear archivos PDF utilizando tecnologías web familiares: HTML, CSS y JavaScript (de forma limitada). En lugar de aprender complejas API de bajo nivel para trabajar con PDF (como en FPDF o TCPDF), simplemente puede escribir una plantilla HTML, darle estilo con CSS y pasarla a DomPDF para su conversión.

\n\n

La biblioteca utiliza un motor de renderizado basado en DOMPDF (de ahí su nombre), que analiza HTML y CSS, crea una representación visual de la página y luego la exporta al formato PDF. DomPDF admite la mayoría de las propiedades CSS estándar, incluyendo posicionamiento, float, flexbox (parcialmente), trabajo con fuentes, imágenes y tablas.

\n\n

¿Para qué sirve esta biblioteca?

\n
    \n
  • Automatización de informes: Creación de facturas, actas, albaranes, propuestas comerciales basadas en datos de la base de datos.
  • \n
  • Generación de certificados y diplomas: Exportación rápida de documentos personalizados con datos únicos (nombre, fecha, curso).
  • \n
  • Creación de libros electrónicos y manuales: Conversión de contenido HTML a un PDF bien formateado para descargar.
  • \n
  • Guardado de páginas web: Función "Guardar como PDF" para cualquier contenido del sitio.
  • \n
  • Integración con CMS: WordPress, Laravel, Symfony y otros frameworks utilizan activamente DomPDF para generar documentos.
  • \n
\n\n

La principal ventaja de DomPDF frente a alternativas es su facilidad de uso. Si sabes HTML y CSS, ya sabes trabajar con DomPDF en un 80%.

\n\n

Instalación de DomPDF

\n\n

La instalación de DomPDF en un proyecto PHP moderno se realiza a través del gestor de dependencias Composer. Esta es la forma estándar para las bibliotecas PHP.

\n\n

Asegúrate de tener instalado Composer. Luego ejecuta el comando en la raíz de tu proyecto:

\n\n
composer require dompdf/dompdf
\n\n

Después de una instalación exitosa, aparecerá la carpeta vendor en tu proyecto, y se agregará una línea de dependencia en el archivo composer.json. Si usas un framework (Laravel, Symfony), la instalación puede diferir ligeramente (por ejemplo, a través de proveedores de servicios), pero el comando base sigue siendo el mismo.

\n\n

Importante: DomPDF requiere PHP versión 7.1 o superior. También se recomienda instalar la extensión PHP mbstring para un correcto funcionamiento con codificaciones multibyte (UTF-8).

\n\n

Para verificar la instalación, crea un archivo test.php y agrega el siguiente código:

\n\n
<?php\nrequire_once 'vendor/autoload.php'; // Cargamos el autoloader de Composer\n\nuse Dompdf\\Dompdf;\n\n$dompdf = new Dompdf();\n$dompdf->loadHtml('<h1>Hello World</h1>');\n$dompdf->render();\n$dompdf->stream("test.pdf");\n\n?>
\n\n

Si al abrir el archivo en el navegador se descarga un PDF con el texto "Hello World", la instalación fue exitosa.

\n\n

Inicio rápido: primer documento PDF

\n\n

Vamos a crear un ejemplo simple pero completo. Generaremos un archivo PDF con una tabla y estilos.

\n\n
<?php\nrequire_once 'vendor/autoload.php';\n\nuse Dompdf\\Dompdf;\nuse Dompdf\\Options;\n\n// 1. Configuración de opciones (opcional)\n$options = new Options();\n$options->set('defaultFont', 'DejaVu Sans'); // Fuente con soporte para cirílico\n$options->set('isRemoteEnabled', true); // Permitir carga de imágenes externas\n\n// 2. Creamos una instancia de Dompdf\n$dompdf = new Dompdf($options);\n\n// 3. Contenido HTML\n$html = '\n<!DOCTYPE html>\n<html>\n<head>\n    <style>\n        body { font-family: DejaVu Sans, sans-                    

Recommendations