margenes generar ejemplos desde php pdf include dompdf

php - generar - laravel-dompdf ejemplos



Dompdf no se carga (7)

Estoy tratando de ejecutar dompdf en un servidor interno. Con las configuraciones predeterminadas de config.inc.php, obtengo lo siguiente cuando ejecuto el equivalente de la secuencia de comandos ''Hello Wolrd'' de la demo:

Warning: require_once(/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php): failed to open stream: No such file or directory in /var/www/dompdf-master/dompdf_config.inc.php on line 335 Fatal error: require_once(): Failed opening required ''/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php'' (include_path=''.:/usr/share/php:/usr/share/pear'') in /var/www/dompdf-master/dompdf_config.inc.php on line 335

Cuando desactivo DOMPDF_ENABLE_AUTOLOAD , ya no recibo esta advertencia, pero el código falla con lo siguiente:

Fatal error: Class ''DOMPDF'' not found in /var/www/rfq/test.php on line 115

El siguiente es el código:

require_once("/var/www/dompdf-master/dompdf_config.inc.php"); $dompdf = new DOMPDF(); // this is the line that fails $dompdf->load_html($quotehtml); $dompdf->render(); $dompdf->stream("rfq".$_REQUEST[''quoteid''].".pdf");

Esto es Ubuntu 12.04, actualizado en parches, con configuraciones de Apache predeterminadas.

Muchas gracias.


Casi tuve el mismo problema. Mi código estaba trabajando en mi máquina de desarrollo local, una caja de Windows, pero luego estaba fallando en nuestro servidor de producción: una caja de Linux

El problema era que el directorio "classes" estaba en minúsculas (/ app / Vendor / dompdf / lib / php-font-lib / classes) a las ventanas no les importaba, pero Linux sí lo hacía.

Simplemente editando la siguiente línea en dompdf_config.inc.php resolvió el problema:

require_once(DOMPDF_LIB_DIR . "/php-font-lib/Classes/Font.php");

Por coherencia, renombré el directorio con una "C" mayúscula en el cuadro de Windows.


Este es un problema temporal después de que el proyecto DOMPDF se trasladó a Github. Vea las respuestas a esta pregunta . La solución más fácil para obtener el paquete completo es descargar DOMPDF 0.6 beta 3 de Google Code .


La nueva versión de dompdf no funciona con ''composer install'' o ''composer update''. Necesita versiones especiales de bibliotecas de fuentes que pueden no ser siempre las últimas versiones, por lo que esto podría cambiar en el futuro. Pero puede encontrar cómo instalarlo a través de la documentación de dompdf. No sé por qué los autores no han codificado estas versiones de fuente dentro del composer.json, pero de todos modos aquí es cómo hacerlo.

Actualmente, la forma más fácil y la mejor manera de usar la biblioteca es a través de git (tomado de los documentos oficiales)

git clone https://github.com/dompdf/dompdf.git cd dompdf git clone https://github.com/PhenX/php-font-lib.git lib/php-font-lib cd lib/php-font-lib git checkout 0.4 cd .. git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib cd php-svg-lib git checkout v0.1

Entonces puedes hacer

use Dompdf/Dompdf; $dompdf = new Dompdf(); $dompdf->loadHtml(''hello world''); $dompdf->setPaper(''A4'', ''landscape''); $dompdf->render(); $dompdf->stream( "/path-to-save-pdf-file/sample.pdf");


Si el error no se corrige después de hacer lo que sugieren otras respuestas:

In dompdf_config.inc.php, change line 332 to point to the actual location of your Font.php file. mine was /php-font-lib/src/FontLib

No hay una carpeta de CLASES que haya sido mencionada allí.


Si está utilizando composer para instalar dompdf, debe poner define("DOMPDF_ENABLE_AUTOLOAD", false); en dompdf_config.custom.inc.php. Esto permitirá que el compositor cargue automáticamente el php-font-lib como ya está instalado. (Consulte este número: https://github.com/dompdf/dompdf/issues/636 )

Si no estás usando el compositor, mira la respuesta de Mikepote.



  • Vaya a https://github.com/PhenX/php-font-lib y descargue la biblioteca.
  • Crea el dompdf/lib/php-font-lib/classes/ .
  • En el archivo zip, tome los contenidos de la carpeta src/FontLib/ y pegue eso en su directorio recién creado.

Eso pareció funcionar para mí.