Zend_Pdf

Tester la génération d'un PDF avec Zend_Test et Zend_Pdf

Une petite astuce pour tester un contrôleur qui génère du PDF. Pour s'assurer que c'est bien du PDF qui est envoyé, on peut utiliser Zend_Pdf qui est capable de charger un document existant :

<?php
$this
->dispatch('/moncontrolleur/1/pdf');
$this->assertResponseCode(200);
$this->assertHeaderContains('Content-type''application/pdf');
$pdf Zend_Pdf::parse($this->getResponse()->getBody());
$this->assertEquals('MonProgramme'$pdf->properties['Creator']);
?>

Si le PDF n'est pas correct, Zend_Pdf lancera une exception : Zend_Pdf_Exception: File is not a PDF. On peut également vérifier les propriétés du PDF et le nombre de pages. Par contre, on ne peut pas accéder au contenu du PDF pour vérifier le texte qu'il contient.

Astuce Zend_Pdf : formater une date pour les métadonnées

Avec la propriété properties de Zend_Pdf, on peut définir les propriétés du document. Il y a deux clés de type date : CreationDate qui indique la date et l'heure de création du document et ModDate pour la date et l'heure de dernière modification. Le format de date est un peu particulier. Pour éviter de se tromper, on peut utiliser la méthode statique (non documentée) Zend_Pdf::pdfDate. Cette fonction, appelée sans argument, renvoie la date et l'heure courante formatées suivant le standard PDF. On peut également lui passer un timestamp.

Etiquettes:

Zend_Pdf : obtenir la largeur d'un texte

Zend_Pdf

Zend_Pdf_Page ne dispose pas de méthode qui permette de déterminer la largeur d'une chaine de caractères, ce qui pose des problèmes car cette information est indispensable pour centrer ou aligner un texte à droite.

Heureusement, Zend_Pdf_Resource_Font dispose de quelques méthodes qui nous permettent de réaliser cette opération.

Zend Framework : une aide d'action pour envoyer un PDF au navigateur

Zend_Pdf

Zend_Pdf ne dispose pas d'une méthode Output comme FPDF qui permet de générer et d'envoyer le fichier PDF au navigateur. Et c'est normal car le Zend Framework est conçu de façon à ce que chaque classe puisse être utilisée indépendamment des autres classes.

Subscribe to RSS - Zend_Pdf