dompdf ne charge pas

j'essaie de faire tourner dompdf sur un serveur interne. Avec la configuration par défaut.Inc.paramètres php, j'obtiens ce qui suit en exécutant l'équivalent du script de démonstration 'Hello Wolrd':

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 

quand j'éteins DOMPDF_ENABLE_AUTOLOAD , Je ne reçois plus cet avertissement, mais le code échoue avec ce qui suit:

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

le code suivant est utilisé:

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

C'est Ubuntu 12.04, à jour sur les patches, avec Apache par défaut des paramètres.

Merci beaucoup.

28
demandé sur Lukas Knuth 2013-02-22 20:02:50

7 réponses

  • passer à https://github.com/PhenX/php-font-lib et télécharger la bibliothèque.
  • crée le répertoire dompdf/lib/php-font-lib/classes/ .
  • dans le fichier zip, prenez le contenu du dossier src/FontLib/ et collez-le dans votre répertoire nouvellement créé.

Qui semblait fonctionner pour moi.

74
répondu Mikepote 2014-07-01 08:42:47

il s'agit d'une question temporaire après le déménagement du projet DOMPDF à Github. Voir les réponses à cette question . La solution la plus simple pour obtenir le paquet complet est de télécharger DOMPDF 0.6 beta 3 à partir de Google Code .

4
répondu Jpsy 2017-05-23 10:31:12

nous utiliserons dompdf dans codeigniter mais le fichier que j'ai téléchargé à partir de GitHub n'a pas tous les fichiers dont nous avons besoin. Manque tous les fichiers de php-font-lib. Nous avons donc eu à télécharger et téléchargés dans le dossier respectif. Donc, pour que dompdf travaille dans codeigniter, vous devrez peut-être le télécharger.

voir ici http://www.digitalwhores.net/codeigniter/codeigniter-dompdf-master-and-php-font-lib /

2
répondu Valko Valkov 2013-09-29 15:37:48

si vous utilisez composer pour installer dompdf, vous devez mettre define("DOMPDF_ENABLE_AUTOLOAD", false); dans dompdf_config.personnaliser.Inc.php. Cela permettra ensuite à composer d'Autoloader le php-font-lib tel qu'il est déjà installé. (Voir ce numéro: https://github.com/dompdf/dompdf/issues/636 )

si vous n'utilisez pas composer, voir la réponse de Mikepote.

0
répondu Loren 2014-10-17 15:34:03

si l'erreur n'est pas corrigée après avoir fait ce que d'autres réponses suggèrent:

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

il n'y a pas de dossier CLASSES qui y a été mentionné.

0
répondu cMinor 2015-05-31 19:37:04

j'ai eu presque le même problème. Mon code fonctionnait sur ma machine de développement locale - Une Boîte Windows - mais ensuite était en panne sur notre serveur de production - une boîte Linux

le problème était que le répertoire "classes" était en minuscules (\app\Vendor\dompdf\lib\php-font-lib\classes) ce que windows ne voulait pas - mais Linux étant sensible à la casse l'a fait!

édite simplement la ligne suivante dans dompdf_config.Inc.php a résolu le problème:

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

par souci de cohérence, j'ai renommé le répertoire avec un Majuscule" C " sur la fenêtre Windows.

0
répondu foxbeefly 2015-06-24 08:57:43

la nouvelle version de dompdf ne fonctionne pas avec 'composer install' ou 'composer update'. Il a besoin de versions spéciales de bibliothèques de polices qui ne sont pas toujours les dernières versions, ce qui pourrait changer à l'avenir. Mais vous pouvez trouver comment l'installer via la documentation de dompdf. ne sait pas pourquoi les auteurs n'ont pas codé ces versions de police à l'intérieur du compositeur.json, mais de toute façon, voici comment le faire.

actuellement la manière la plus facile et la meilleure de l'utilisation de la Bibliothèque est via git (tiré des documents officiels)

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

, Alors vous pouvez simplement faire

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");
0
répondu omer Farooq 2017-02-03 21:59:53