2013-01-12 3 views
0

Je suivais this grand tutorielCakePHP 2.1.0 Erreur fatale: de la dompdf 'Classe introuvable

Mon View/Layouts/pdf/default.ctp

App::import('Vendor', 'dompdf/dompdf.php'); 
$dompdf = new DOMPDF(); 
$dompdf->load_html(utf8_decode($content_for_layout), Configure::read('App.encoding')); 
$dompdf->render(); 
echo $dompdf->output(); 

Mon View/Bids/pfd/view.ctp est une copie de mon avis régulièrement à des fins de test.

Si je supprime l'extension php:

App::import('Vendor', 'dompdf/dompdf'); 

J'obtiens l'erreur:

An input file is required (i.e. input_file _GET variable). 

Essayé plusieurs combinaisons de require_once et à pas de chance. (même essayé avec un autre dompdf frais téléchargement: (à partir Github, zip appelé dompdf-maître)

App::import('Vendor', 'dompdf-master/dompdf.php'); 

et a obtenu même classe pas erreur trouvée

Si je supprime l'extension php dans ce dompdf-maître

.
App::import('Vendor', 'dompdf-master/dompdf'); 

obtenu erreur:

PHP-font-lib must either be installed via composer or copied to lib/php-font-lib 

Je suis un accès positif est accordé et les fichiers sont là où ils sont censés être, PHP 5.3.

C'est supposé être très simple selon le tutoriel de Mark.

Pouvez-vous m'aider?

Merci beaucoup!

+0

Je vous suggère de tester avec PHP standard incluent() pour obtenir tout ce travail d'abord. Puis commencez à remplacer l'un inclus à la fois avec App :: import de Cake. (la syntaxe pour les différentes méthodes de Cake include/import/etc peut être non intuitive et simple) – Costa

+0

Merci @Costa; essayé 'inclure (APP. 'Vendor/dompdf/dompdf.php'); ' et a obtenu une erreur 'Un fichier d'entrée est requis (c'est-à-dire, fichier_entrée _GET variable). '. Essayé y compris chaque fichier .php (dompdf_config.inc.php, etc) et même erreur. Suppression de l'extension .php ne donne aucune classe trouvée. –

Répondre

1

Le fichier à charger pour la configuration de dompdf est dompdf_config.inc.php. dompdf ne suit pas actuellement le CakePHP File and Classname Conventions. Puisque vous chargez la classe directement au lieu d'utiliser un plugin qui utilise dompdf, vous devrez être plus explicite. En regardant le App::import() documentation dans le livre CakePHP, quelque chose comme ce qui suit pourrait fonctionner:

App::import($type = 'Vendor', 'DOMPDF', true, array(), 'dompdf_config.inc.php', false); 

Bien sûr, si vous follow the advice in this answer, vous devez simplement utiliser besoin:

require_once(APP . 'Vendor' . DS . 'dompdf' . DS . 'dompdf_config.inc.php'); 

Enfin, je vous recommande laissez tomber la utf8_decode() appel, tant que vous utilisez dompdf 0.6.0. dompdf 0.5.1 n'a pas trop bien géré UTF8, mais la dernière version le gère très bien, aussi longtemps que vous avez suivi les conseils du Unicode How-to.

Votre mise en page devrait ressembler donc plus comme ce qui suit:

require_once(APP . 'Vendor' . DS . 'dompdf' . DS . 'dompdf_config.inc.php'); 
$dompdf = new DOMPDF(); 
$dompdf->load_html($content_for_layout); 
$dompdf->render(); 
echo $dompdf->output(); 
+0

Merci #BrianS. La classe semble maintenant charger. Cependant, Adobe signale une erreur: Le fichier ne commence pas par '% PDF-'. J'utilise Adobe Reader X, j'ai essayé de décocher 'Afficher le PDF dans le navigateur', j'ai nettoyé l'historique du navigateur, etc. Vous avez des idées pour résoudre ce problème? (Mis à part cela, un autre générateur PDF (mpdf) fonctionne très bien à l'extérieur de cakephp, mais n'a pas pu s'intégrer dans le gâteau, mais le pdf est créé sans faille). J'ai également lu que cette erreur se produit lorsque les données sont publiées avant que le pdf est rendu. Un indice à ce sujet? J'apprécie vraiment votre aide. –

+0

Merci @BrianS. La classe semble maintenant charger. Toutefois, Adobe signale une erreur: le fichier ne commence pas par '% PDF-'. Local \ EWH-jlr [+ $ y J'utilise Adobe Reader X, j'ai essayé de décocher 'Afficher le PDF dans le navigateur', nettoyé dans l'historique du navigateur, etc. Des idées sur comment résoudre ce problème? –

+0

Juste essayé ce plugin qui utilise dompdf (ou Mpdf) https://github.com/ceeram/CakePdf et toujours eu une erreur: Le fichier ne commence pas par '% PDF-'. !! Pouvez-vous aider? –

Questions connexes