Recientemente me topé con un problema al trabajar con la librería DOMPDF, utilizada para generar PDFs en PHP a partir de código HTML. Me mostraba un error en pantalla y la creación del PDF no se llevaba a cabo.
Más puntualmente me pasaba en una Mac, en distintas PCs con Windows el problema no se presentaba. Me tuvo bastante tiempo dándole vueltas hasta que encontré una solución, quizá les pueda servir.
El error decía algo así:
Message: file_put_contents(): Filename cannot be empty Filename: src/FontMetrics.php
Brevemente explicado, lo que sucedía es que el sistema estaba intentando acceder al directorio de almacenamiento de archivos temporales a través de la función de PHP __sys_get_temp_dir()
__ y dicho directorio no era accesible, por no existir o por permisos de escritura.
Entonces la solución la logré usando las opciones de configuración del propio DOMPDF junto a la posibilidad de PHP de crear directorios.
<?php // Incluyo la librería require 'vendor/autoload.php'; use Dompdf\Dompdf; use Dompdf\Options; // Algo de código... // Estas son las líneas mágicas // Path temporal $temp_dir = '/path/to/dompdf_tmp/'; // Si el path no existe lo creo if(!is_dir($temp_dir)){ mkdir($temp_dir, 0777, true); } // Seteo el path creado como directorio temporal para DOMPDF $options->set('tempDir', $temp_dir); // Instancio DOMPDF $dompdf = new DOMPDF($options); // Código de generación... ?>