mPDF es una biblioteca PHP que genera archivos PDF a partir de HTML codificado en UTF-8.
Está basado en FPDF y HTML2FPDF (ver CRÉDITOS), con una serie de mejoras. mPDF fue escrito por Ian Back y se publica bajo la licencia GNU GPL v2.
Si está viendo este archivo en la página de inicio del repositorio mPDF GitHub o en Packagist, tenga en cuenta que la rama predeterminada del repositorio es development
, que puede diferir de la última versión estable.
PHP >=5.6 <7.3.0
es compatible con mPDF >= 7.0
PHP 7.3
es compatible desde mPDF v7.1.7
PHP 7.4
es compatible desde mPDF v8.0.4
PHP 8.0
es compatible desde mPDF v8.0.10
PHP 8.1
es compatible a partir de mPDF v8.0.13
PHP 8.2
es compatible a partir de mPDF v8.1.3
PHP 8.3
es compatible a partir de mPDF v8.2.1
PHP 8.4
es compatible a partir de mPDF v8.2.5
Se deben cargar las extensiones PHP mbstring
y gd
.
Es posible que se requieran extensiones adicionales para algunas funciones avanzadas como zlib
para la compresión de resultados y recursos integrados como fuentes, bcmath
para generar códigos de barras o xml
para la conversión de juegos de caracteres y manejo de SVG.
mPDF tiene algunos problemas al recuperar recursos HTTP externos con servidores de un solo subproceso como php -S
. Se recomienda un servidor adecuado como nginx (php-fpm) o Apache.
Considere apoyar el desarrollo de mPDF con una donación de cualquier valor. El botón de donación se puede encontrar en la página principal de la documentación.
El método de instalación oficial es a través de Composer y su paquete mpdf/mpdf.
$ composer require mpdf/mpdf
El uso más sencillo (desde la versión 7.0) de la biblioteca sería el siguiente:
<?phprequire_once __DIR__ . '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>¡Hola mundo!</h1>');$mpdf->Output();
Esto generará el PDF en línea en el navegador como tipo de contenido application/pdf
.
Todas las directivas de configuración se pueden establecer mediante el parámetro $config
del constructor.
Se recomienda configurar su propio directorio temporal mediante la variable de configuración tempDir
. El directorio debe tener permisos de escritura (se recomienda el modo 775
) para los usuarios que utilizan mPDF (normalmente cli
, webserver
, fpm
).
Advertencia: mPDF limpiará los archivos temporales antiguos en el directorio temporal. Elija una ruta dedicada únicamente a mPDF.
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
De forma predeterminada, el directorio temporal estará dentro del directorio del proveedor y tendrá permisos de escritura desde el script del compositor post_install
.
Para obtener más información sobre el directorio temporal personalizado, consulte la nota sobre Carpeta para archivos temporales en la sección Instalación y configuración del manual.
Si tiene problemas, lea la sección sobre solución de problemas en el manual.
mPDF en su conjunto es un software bastante anticuado. Hoy en día, hay mejores alternativas disponibles, aunque no escritas en PHP.
Utilice mPDF si no puede utilizar un enfoque que no sea PHP para generar archivos PDF o si desea aprovechar algunos de los beneficios de mPDF sobre el enfoque del navegador: manejo del color, preimpresión, compatibilidad con códigos de barras, encabezados y pies de página, numeración de páginas, TOC, etc. Pero tenga en cuenta que podría ser necesaria una plantilla HTML/CSS diseñada para mPDF.
Si está buscando soporte CSS de última generación, reflejando páginas HTML existentes en PDF, utilice Chrome sin cabeza.
mPDF aún se actualizará para mejorar algunas capacidades internas y admitir versiones más nuevas de PHP, pero lo más probable es que no se implemente soporte CSS mejor y/o más nuevo.
El manual en línea está disponible en https://mpdf.github.io/.
Si tiene preguntas generales o solución de problemas, utilice Discusiones.
También puede utilizar la etiqueta mpdf en Stack Overflow, ya que es más probable que la base de usuarios de StackOverflow le responda de manera oportuna.
Antes de enviar problemas y solicitudes de extracción, lea el archivo CONTRIBUTING.md.
Las pruebas unitarias para mPDF se realizan utilizando PHPUnit.
Para comenzar, ejecute composer install
desde la línea de comando mientras se encuentra en el directorio raíz de mPDF (primero necesitará tener instalado Composer).
Para ejecutar pruebas, ejecute composer test
desde la línea de comando mientras se encuentra en el directorio raíz de mPDF.
Se agradece enormemente cualquier ayuda para escribir pruebas unitarias para mPDF. Si desea ayudar, tenga en cuenta que cualquier archivo PHP ubicado en el directorio /tests/
se cargará automáticamente durante la prueba unitaria.