Librería mPDF

Cómo crear un archivo PDF usando mPDF y PHP

Cómo crear un archivo PDF usando mPDF. PDF es un tipo de archivo muy usado para compartir y leer datos en Internet. en artículos anteriores hemos dado un tutorial sobre cómo convertir datos HTML a pdf.

Ahora crearemos un script PHP de datos estáticos que usa la biblioteca mPDF para generar archivos PDF. El paquete mpdf es una genial utilidad de PHP que le permite convertir código HTML en un formato PDF.

Ver Demostración con texto básico Ver Demostración con imágenes

Atributos y soporte de MPDF

La biblioteca mPDF ayuda en la creación de archivos PDF a partir de HTML codificado en UTF-8, posee múltiples opciones como ser:

  • Fuentes e idiomas
  • Soporte HTML y Base de datos
  • Paginación de hojas
  • Encabezados y pies de página
  • CSS y hojas de estilo
  • Configuración de las propiedades del archivo PDF
  • Soporta imágenes y mucho más.

Cómo crear un archivo PDF usando mPDF y PHP

En el presente articulo veremos algunas ventajas del paquete mPDF para crear archivos PDF desde el lenguaje PHP

Las siguientes dependencias son requeridas para el correcto funcionamiento:

  • PHP 5.6 || 7.0.0 || 7.1.0 || 7.2.0 es requerido por mPDF 7.0.
  • Las extensiones PHP mbstring y gd deben estar habilitadas.
  • Requiere el módulo PHP zlib para la compresión de salida y recursos integrados como fuentes, así como bcmath para la generación de códigos de barras y xml para la conversión de juegos de caracteres y el manejo de SVG.

Crear archivo PDF con marca de agua usando PHP

Agregaremos texto de marca de agua dentro de un archivo pdf. El método que proporciona mPDF para agregar texto e imágenes de marca de agua. Hay un proceso de dos pasos para crear un pdf usando PHP.

Pasos para agregar marca de agua en mPDF

  • Primer paso. Descargue la biblioteca de GitHub
  • Segundo paso. Cree un documento HTML y guárdelo como una variable php.
  • Paso 3. Incluiremos la clase de biblioteca mPDF

A continuación, detallaremos los 3 pasos que debemos de realizar para lograr el objetivo de colocar una marca de agua en un documento PDF generado con PHP.

Primer paso. Descargue la biblioteca de GitHub

Una vez descargado el paquete tiene que extraer los ficheros y almacenarlo en  (xampp/htdocs/projectname/mpdf) o use el comando:

composer require mpdf/mpdf

Segundo paso. Cree un documento HTML y guárdelo como una variable php.

Puede hacerlo dinámico con PHP y base de datos, pero en este ejemplo usaremos un documento HTML estático. El siguiente contenido se agregará al archivo index.php.

$html = '<table width="80%" cellspacing="0" border="1">
<thead>
<tr>
<th>Empid</th>
<th>Nombres</th>
<th>Salario</th>
<th>Edad</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Tiger Nixon</td>
<td>320800</td>
<td>61</td>
</tr>
<tr>
<td>2</td>
<td>Garrett Winters</td>
<td>434343</td>
<td>63</td>
</tr>
<tr>
<td>3</td>
<td>Ashton Cox</td>
<td>86000</td>
<td>66</td>
</tr>
<tr>
<td>4</td>
<td>Cedric Kelly</td>
<td>433060</td>
<td>22</td>
</tr>
<tr>
<td>5</td>
<td>Airi Satou</td>
<td>162700</td>
<td>33</td>
</tr>
<tr>
<td>6</td>
<td>Brielle Williamson</td>
<td>372000</td>
<td>61</td>
</tr>
<tr>
<td>7</td>
<td>Herrod Chandler</td>
<td>137500</td>
<td>59</td>
</tr>
<tr>
<td>8</td>
<td>Rhona Davidson</td>
<td>327900</td>
<td>55</td>
</tr>
<tr>
<td>9</td>
<td>Colleen Hurst</td>
<td>205500</td>
<td>39</td>
</tr>
<tr>
<td>10</td>
<td>Sonya Frost</td>
<td>103600</td>
<td>23</td>
</tr>
</tbody>
</table>';
Exportar PDF en MPDF
Exportar PDF en MPDF

Paso 3. Incluiremos la clase de biblioteca mPDF

Para que PHP pueda crear el documento PDF debemos de incluir al final del archivo index.php las siguientes líneas de código que llama a la clase MPDF.

$mpdf = new \Mpdf\Mpdf([
'setAutoTopMargin' => 'stretch',
'autoMarginPadding' => 7]);

//llame al contenido y la imagen de la marca de agua
$mpdf->SetWatermarkText('MiEmpresa.com');
$mpdf->showWatermarkText = true;
$mpdf->watermarkTextAlpha = 0.1;


//guarde el archivo y coloque la ubicación que necesita carpeta/nombre de archivo
$mpdf->Output("miempresa.pdf", 'F');


//salida en el navegador debajo de la función de salida
$mpdf->Output();

¿Como configurar Header y Footer usando mPDF?

Para configurar el header debemos de incorporar $mpdf->SetHTMLHeader() y para el footer $mpdf->SetHTMLFooter() dentro del fichero donde deseamos crear el documento PDF.

Pasos para agregar encabezados y pie de páginas en mPDF

  • Descargue la biblioteca de GitHub
  • Cree un documento PHP y declare el autoload.php.
  • Incluir SetHTMLHeader() y SetHTMLFooter()

Veamos un ejemplo completo

<?php
$mpdf = new \Mpdf\Mpdf();

// Define the Header/Footer before writing anything so they appear on the first page
$mpdf->SetHTMLHeader('
<div style="text-align: right; font-weight: bold;">
Mi Empresa
</div>');
$mpdf->SetHTMLFooter('
<table width="100%">
<tr>
<td width="33%">{DATE j-m-Y}</td>
<td width="33%" align="center">{PAGENO}/{nbpg}</td>
<td width="33%" style="text-align: right;">Mi Empresa</td>
</tr>
</table>');

$mpdf->WriteHTML('Hello World');

$mpdf->Output();

Salida en el navegador

Header y footer en mPDF
Header y footer en mPDF

¿Como corregir el error Fatal error: Uncaught Error: Class «mPDF» en mPDF?

Al ejecutar MPDF se suele presentar el siguiente error:

Fatal error: Uncaught Error: Class "mPDF" not found in 
F:\XAMP8\htdocs\BAUL\pdf-usando-mpdf\Basico_mPDF\generate_pdf.php:76 Stack trace: #0 
F:\XAMP8\htdocs\BAUL\pdf-usando-mpdf\Basico_mPDF\generate_pdf.php(98): generate_pdf() #1 {main} thrown in 
F:\XAMP8\htdocs\BAUL\pdf-usando-mpdf\Basico_mPDF\generate_pdf.php on line 76

Para corregir este error debemos de configurar el llamado a la clase MPDF

Si al ejecutar el paquete mPDF nuestra un error de tipo FATAL ERROR solo debemos de buscar esta línea de código y reemplazar.

$mpdf = new mPDF();

La solución es cambiar de new mPDF(); a new \Mpdf\Mpdf(); . Veamos un ejemplo

$mpdf = new \Mpdf\Mpdf();

Conclusión

Usando PHP y contenido HTML estático, hemos logrado generar un documento PDF básico. Puede cambiar el método de creación de pdf para cumplir con sus requisitos.

Además, se puede incorporar consultas SQL desde base de datos para poblar nuestro PDF generado.

También, puede personalizar los encabezados y pie de páginas agregando imágenes de su empresa y marcas de agua. Así mismo, puede configurar márgenes, estilos, tablas, fuentes de texto, entre otras opciones.

Header y footer con imagen mpdfHeader y footer con imagen mpdf
Header y footer con imagen mpdf

Puede descargar el código fuente y/o ver la demostración desde el siguiente enlace.

Ver Demostración con texto básico Ver Demostración con imágenes

 

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba