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.
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.
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 .
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 /
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.
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é.
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.
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");