Forzar descarga DOMPDF PHP
Forzar descarga DOMPDF PHP. Explicaremos con un sencillo ejemplo para descargar un fichero a través de un navegador usando la librería DOMPDF para generar documentos PDF.
Forzar descarga DOMPDF PHP
Además, vamos a aprender a crear un PDF a partir del lenguaje HTML (es decir, vamos a convertir código HTML a un documento PDF), usando el paquete dompdf.
Vamos a ver 3 ejemplos completos para convertir HTML a PDF
- Guardar en el disco duro
- Mostrar en el navegador web
- Forzar descarga en el navegador
¿Como instalar dompdf para descargar PDF?
Para instalar DOMPDF necesitamos el programa Composer, recordemos que composer es un sistema de gestión de paquetes para programar en PHP. Una vez instalado en nuestra PC solo debemos de abrir la consola de Windows y estando en la raíz de nuestro proyecto ejecutar la siguiente línea de código.
composer require dompdf/dompdf
Al ejecutar el comando anterior nos mostrara la importación correcta, aquí les dejo una imagen para que puedan guiarse.
Incluir fichero autoload de dompdf
Una vez que la instalación fue exitosa debemos de incluir el fichero autoload en el archivo donde deseamos generar el documento PDF:
include_once "./vendor/autoload.php";
use Dompdf\Dompdf;
Nota:
Recuerda que al instalar el DOMPDF usando composer se creara una carpeta llamada VENDOR y debemos de respetar la ruta de archivos para que no emita ningún error.
Múltiples opciones de exportar un documento PDF en PHP
A continuación, veremos 3 formas prácticas para convertir un archivo o script HTML a documento PDF a través del lenguaje PHP.
Generar PDF guardado en disco de servidor
Para generar y guardar un documento PDF, se debe crear una instancia de Dompdf e invocar a loadHtml. Por lo tanto, le hemos pasado el código HTML como string e invocar a render (esta función convertirá el HTML a PDF), generando un PDF con PHP y guardando el PDF en la raíz del proyecto.
<?php
// Declaramos las librerias necesarias para de dompdf
include_once "./vendor/autoload.php";
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>¡Hola mundo!</h1><br><a href="https://www.baulphp.com">Blog BaulPHP.com</a><br><hr>');
$dompdf->render();
$contenido = $dompdf->output();
// Asignamos nombre de archivo con la función RAND()
$nombreDelDocumento = rand()."_hola-mundo.pdf";
$bytes = file_put_contents($nombreDelDocumento, $contenido);
?>
Explicación del código anterior
Para generar el contenido invocamos a la función output() y ese contenido puede ser escrito y guardado en el disco duro con file_put_contents.
Al archivo generado le podemos asignar un nombre a través de la variable $nombreDelDocumento
Crear PDF en vista Navegador
En el ejemplo de arriba vimos cómo guardar el PDF en el disco duro. Sin embargo, ahora podemos mostrarlo directamente en el navegador; para ello mostramos algunos encabezados para mostrar el PDF en el navegador y después imprimimos su contenido:
<?php
// Declaramos las librerias necesarias para de dompdf
include_once "./vendor/autoload.php";
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>¡Hola mundo!</h1><br><a href="https://www.baulphp.com">Blog BaulPHP.com</a><br><hr>');
$dompdf->render();
header("Content-type: application/pdf");
//Asigmanos el nombre al archivo desde vista navegador usando la funcion TIME()
header("Content-Disposition: inline; filename=".time()."_Hola_Mundo.pdf");
echo $dompdf->output();
?>
FORZAR DESCARGA DOMPDF
Para forzar la descarga tenemos que usar el método STREAM y se implementa de la siguiente manera $dompdf->stream(); esta opción ofrece DOMPDF para descargar un fichero desde el navegador web. Veamos un ejemplo de implementación a continuación:
<?php
// Declaramos las librerias necesarias para de dompdf
include_once "./vendor/autoload.php";
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>¡Hola mundo!</h1><br><a href="https://www.baulphp.com">Blog BaulPHP.com</a><br><hr>');
$dompdf->render();
// Asignamos nombre al fichero a descargar
$dompdf->stream(time()."_Hola_Mundo.pdf");
?>
Conclusión
En este articulo hemos aprendido a generar PDF con PHP de 3 formas sencillas a través de HTML, respetando estilos CSS para darle buena forma a los PDF creados con PHP.
Además, se puede implementar consultas SQL, Método POST o método GET para solicitar información desde una base de datos, siempre y cuando tengamos una conexión hacia MySQL o MariaDB.
Si deseas usar estilos se podría usar el framework Bootstrap y con estilos CSS para darle una interfaz profesional.
Para finalizar, también se puede colocar encabezados y pie de páginas dinámicas con esta librería llamada DOMPDF si desean pueden visitar el siguiente link que hablo sobre el tema.
Espero que esta explicacion les ayude en sus proyectos web y no se olviden de compartir en las redes sociales.