DOMPDF

Nombre de archivo personalizados DomPDF

Nombre de archivo personalizados DomPDF. Aprenderemos a cambiar el nombre de archivo generado en PDF de manera dinámica usando varias funciones para diferenciar el nombre de archivo para que no sea repetitivo.

Al momento de crear un documento PDF o descargar haciendo uso del paquete DOMPDF, el punto clave es el nombre del archivo que se descarga en su computadora suele ser el mismo. Obviamente el usuario puede cambiarlo después de descargarlo.

Nombre de archivo personalizados DomPDF

El inconveniente es que tenemos que hacerlo de manera manual ya que DOMPDF asigna un nombre por defecto (document-12.pdf) y así sucesivamente generando en algunos casos equivocaciones al usuario final.

Publicaciones relacionadas

¿Cuál sería la solución?

La solución es darle un nombre personalizado a cada documento, por ejemplo:

  • Uso de la función date()
  • Incorporar la función time()
  • Usando la función rand()

Siempre antecediendo el nombre del documento seguido de un «_», el ejemplo sería: «Factura_04_22-09-2022.pdf«.

Si desea instalar DOMPDF para su proyecto puede ver este articulo para mayor información.

A continuación, dejare un script para descargar o forzar la descarga en PDF. Sin embargo. asigna un nombre por defecto.

<?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();
$dompdf->stream();

?>

¿Cómo cambiar nombre de archivo de descarga dompdf?

Para cambiar el nombre debemos de asignar una función php y el nombre personalizado del archivo. Esta integración debe de realizarse dentro de los paréntesis de stream ($dompdf->stream();). A continuación, dejare el script integrado con la función time() de PHP.

<?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");

?>

Asignar nombre personalizado al guardar en disco

Tenemos que crear una variable por ejemplo de nombre $nombreDelDocumento y agregarle dentro de la fusión file_put_contents que crea el pdf y almacena en el disco.

<?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);
?>

Personalizar nombre al generar y visualizar en el navegador

Podemos usar cualquier función PHP y un nombre personalizado para que el resultado final sea un nombre distinto uno del otro.
Además, podemos asignarle una ID extraída desde base de datos para crear un PDF totalmente personalizado.

<?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();
?>

Conclusión

En este articulo hemos aprendido a personalizar nombres de archivos a las diferentes opciones de exportación del paquete DOMPDF.

Si manejamos base de datos, podemos extraer nombres o alguna ID para personalizar el nombre de archivo.
Espero que esta explicación les ayude en sus proyectos web.

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