Php. Imprimir una página en PDF

Submitted by tech4life on

Muchas veces desde nuestras aplicaciones realizadas en PHP nos vemos con la necesidad de generar un documento en Pdf. Nosotros realizamos algunos utilizando una librería que se llama DomPdf. Esta librera nos permite imprimir Html en Pdf. ¿Cómo? Muy sencillo, nosotros generamos un html, tanto en un fichero como en una variable y luego se lo pasamos a esta librería. Y ella se encarga de generar el Pdf. 

Pero... vamos por partes. 

Pero, ¿ donde me puedo descargar la librería? Muy fácil, es un proyecto que esta alojado en Github. Lo podemos encontrar aquí

Aquí mismo podremos encontrar diferentes versiones, más actuales y más antiguas, que seguro que se adaptan a nuestros servidores. En Github también podemos ver algunos ejemplos de como funciona. Pero aquí os vamos a explicar de forma sencilla como podemos generar un Pdf a partir de código Html.

Una vez nos hemos descargado la librería debemos subir todo el código a una carpeta en nuestro servidor. Una vez que está copiado, y cumplimos todos los requisitos indicados en la web oficial, ya podremos utilizar. Vamos a ver como:

include('/dompdf/autoload.inc.php');
use Dompdf\Dompdf;
$html= '<html><body>Hola</body></html>';
$pdf = new DOMPDF();
$pdf->set_paper("A4", "portrait");
$pdf->load_html($html);
$pdf->render();
$output = $pdf->output();
file_put_contents('mipdf.pdf', $output);

Pero, ¿ todo este código que hace? Pues vamos a analizarlo. Lo primero que tenemos que hacer es incluir el fichero autoload.inc.php que esta dentro de la librería Dompdf que hemos descargado. Así que deberemos poner la ruta donde hayamos puesto nosotros nuestra librería.

El siguiente paso es indicarle que queremos hacer uso (use) de la librería. 

En este caso, nosotros hemos creado una variable $html en la que le hemos puesto código HTML. Esto nos permite generar un HTML sobre la marcha para poderlo imprimir, y nos es muy útil cuando queremos imprimir algún folleto para nuestros clientes.

Luego ya solo tenemos que crear nuestro objeto de tipo DOMPDF, asignar el tipo de página que queremos (en nuestro ejemplo, A4 en modo portrait) y cargar nuestra variable HTML mediante la función load_html.

Una vez ya está cargado el HTML podemos hacer el render, que es lo que hará que Dompdf genere la impresión en Pdf. Para acabar, recogemos el output para poderlo escribir en un fichero (file_put_contents). 

Y ya está! Con esto ya tendremos nuestro fichero mipdf.pdf con una impresión del HTML que hemos generado previamente.

Esperemos que os haya sido útil, en otras entradas os explicaremos algunos trucos cuando imprimimos nuestros Pdfs desde HTML!

Lenguaje
Nivel