Cómo convertir HTML a PDF en PHP
PDF (Portable Document Format) es un formato de archivo que incluye formato de texto e imágenes en un diseño fijo. El PDF es independiente del software, el hardware y el sistema operativo de la aplicación. Eso significa que puede usar el mismo PDF en cualquier sistema operativo.
Mientras trabajamos en aplicaciones PHP, a veces queremos crear PDF a partir de HTML. Puede ser una factura, una guía de instalación, un curriculum vitae, etc. Para que sea dinámico, necesitamos generar PDF usando HTML sobre la marcha.
En este artículo, le muestro cómo convertir HTML a PDF en PHP usando la biblioteca Dompdf.
Dompdf es una biblioteca de conversión de HTML a PDF de código abierto. Con Dompdf, puede crear fácilmente PDF a partir de HTML sin formato o utilizando un archivo HTML.
Empezando
Para comenzar, primero debe instalar la biblioteca Dompdf en su aplicación. Recomiendo usar Composer para la instalación de la biblioteca.
Abra la terminal en el directorio raíz de su proyecto y ejecute el comando:
composer require dompdf/dompdf
Después de instalar una biblioteca, puede incluir el entorno Dompdf en su proyecto utilizando el siguiente código.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
Convertir HTML a PDF en PHP
El código necesario para generar PDF es simple y directo. Como ejemplo, digamos que tiene un HTML sin formato que debería convertirse en PDF. Cree un index.php
archivo y agregue escribir el código de la siguiente manera.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>hello world</h1>');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Aquí, estamos pasando un HTML sin formato al método loadHtml()
. Cuando ejecutamos este archivo, generará PDF y se renderizará en un navegador.
También podemos darle un nombre al PDF que se va a descargar.
$dompdf->stream('test.pdf');
Aprendió a generar PDF a partir de HTML sin formato. Ahora, veamos cómo crear PDF usando un archivo HTML.
Hay 2 formas de hacerlo. En la primera forma, obtenemos el contenido del archivo HTML y lo pasamos al loadHtml()
método. Otra forma es usar la loadHtmlFile()
función y pasarle la ruta del archivo HTML.
Veamos ambos sentidos uno por uno.
Primer método
$html = file_get_contents('test.html');
$dompdf->loadHtml($html);
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Segundo método
En este método, primero debe establecer el ‘chroot’ del directorio donde se encuentra su archivo HTML. Si su archivo HTML está en el directorio raíz, utilice directamente el getcwd()
método. Debe ajustar la ruta según sus requisitos.
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Guarde el archivo PDF generado
Todos los códigos anteriores que hemos escrito mostrarán el PDF generado en un navegador. Si alguien quiere guardar el PDF generado en un disco, utilice el código de la siguiente manera:
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
//Save to disk
$output = $dompdf->output();
file_put_contents("test.pdf", $output);
Se trata de convertir HTML a PDF utilizando la biblioteca Dompdf. Me gustaría escuchar sus pensamientos y sugerencias en la sección de comentarios a continuación.
Artículos relacionados
- Uso de Google reCAPTCHA en los formularios de su sitio web con PHP
- Cargar archivos en Amazon S3 mediante AWS PHP SDK
- Cargar imagen usando la biblioteca a prueba de balas en PHP