Créer PDF avec Zend_pdf

Résolu/Fermé
Stuff90 - Modifié par Stuff90 le 8/01/2011 à 00:38
 Stuff90 - 11 janv. 2011 à 09:12
Bonjour à tous,

Je travaille sur Zend pour une application web et je dois générer un PDF via la librairie de Zend.
Cependant une erreur me pourri la vie sans que je comprenne exactement à quoi elle correspond...

Voici mon code (ya pas plus simple normalement) :

public function pdfInfoHebergementAction()
{


Zend_Loader::loadClass('Zend_Pdf');

$leDocumentPDF = new Zend_Pdf();
$laPage = $leDocumentPDF->newPage(Zend_Pdf_Page::SIZE_A4);
$laPage->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER_BOLD));
$laPage->drawText("coucou", 100, 700);
$leDocumentPDF->pages[] = $laPage;
$leDocumentPDF->save("listeDesPersonnes.pdf");

$pdf = $leDocumentPDF->render();

header("Content-Disposition: inline; filename=result.pdf");
header("Content-type: application/x-pdf");

echo $pdf;


}


Je n'ai pas créé de controller particulier, je ne vois pas ce que ça pourrait changer...

et mon erreur est la suivante :




Exception information:

Message: Argument must be numeric





Je ne vois pas de quel argument il me parle..


Merci d'avance !



A voir également:

4 réponses

oRion23 Messages postés 12 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 21 janvier 2011 3
10 janv. 2011 à 16:17
Bonjour,

Il me semble qu'il ne te manque que la taille de la police.
Essaye ça:
$laPage->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER_BOLD), 10);
2
oRion23 Messages postés 12 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 21 janvier 2011 3
Modifié par oRion23 le 11/01/2011 à 09:01
Bonjour,

Si je ne me trompe pas, tu génères ton PDF via une url du style :
http://ton-site/ton-controller/pdfInfoHebergement

Zend Framework va donc executer la fonction pdfInfoHebergementAction de ton controller. Mais il va aussi essayer d'executer le fichier de vue associé (quelque chose comme /application/views/scripts/tonController/pdfInfoHebergement.phtml ). C'est surement pour ça que ça ne fonctionne pas correctement.

Le plus simple est de dire à Zend Framework de ne pas executer la vue en ajoutant ça au début de ton action pdfInfoHebergementAction :
$this->_helper->layout->disableLayout();
1
Alors oui, effectivement il manquais la taille de la police !
Je ne l'avais pas remarquer...

Par contre, après modification je n'arrive toujours pas à généré mon PDF...
mais cette fois, c'est mon lecteur (Adobe reader) qui me dis que mon fichier généré n'est pas bon.

Voici l'erreur complète :

Adobe reader n'a pas pu ouvrir result.pdf, car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas été décodé correctement, par exemple).



Voyant ça j'ai essayé de voir quelles informations passaient dans le PDF. J'ai donc fait un echo de tout ça et ça me donne ceci :


%PDF-1.4 %???? 1 0 obj <> endobj 2 0 obj <> endobj 3 0 obj <> >> /MediaBox [0 0 595 842 ] /Contents [4 0 R ] /Parent 2 0 R >> endobj 4 0 obj <> stream /F1 10 Tf BT 100 700 Td (coucou) Tj ET endstream endobj 5 0 obj [] endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj [] endobj 9 0 obj <> endobj 10 0 obj <> endobj xref 0 11 0000000000 65535 f 0000000015 00000 n 0000000091 00000 n 0000000149 00000 n 0000000337 00000 n 0000000426 00000 n 0000000445 00000 n 0000000479 00000 n 0000000513 00000 n 0000000532 00000 n 0000000566 00000 n trailer < <35333835326530333066346162313834> ] /Size 11 /Root 1 0 R >> startxref 667 %%EOF



le début du code montre bien que le type de fichier est un PDF mais cependant les 4 caractères inconnue situé après "%" m'inquiète un peu...

Le problème vient-il de là ?
Est-ce un problème de configuration de Zend ?

Je suis un peu perdu là...

Merci d'avance.
0
Ça marche !

C'est vrai que c'est pourtant logique de désactiver la vue puisque Zend se retrouvait à devoir afficher 2 choses différentes en même temps...

Merci beaucoup à oRion23 !
0