J'avais besoin d'utiliser une classe pour manipuler les pdf en php. En lisant la documentation, j'ai trouvé que la librairie pdf du Zend framework convenait très bien à mes besoins.

Comme l'application pour laquelle j'ai besoin de ceci est développée avec Jelix et comme je n'ai pas plus de raisons que cela de changer de framework, j'ai écrit un plugin pour Jelix me permettant de charger facilement les librairies du Zend framework.

Vous pouvez donc télécharger le plugin zendFramework pour Jelix. Ce plugin est expérimental mais semble très fonctionner chez moi pour le moment. Tous les retours d'utilisation sont les bienvenus.

Comme tout bon plugin Jelix, il vous suffit de :

  • copier le plugin dans le répertoire plugins/ de votre application
  • copier le fichier de configuration du plugin , zendFramework.plugin.ini.php, dans le répertoire var/config/ de l'application
  • éditer le fichier de configuration pour définir la variable zendLibPath avec le chemin absolu vers le répertoire library du Zend Framework sur votre machine.
  • déclarer le plugin dans la section [plugins] du fichier var/config/defaultconfig.ini.php de l'application

Ensuite, dans vos controllers Jelix, vous chargez les classes du Zend framework avec Zend_Loader::loadClass(la_classe)

Exemple d'utilisation avec Zend_Pdf dans une action d'un controller Jelix :


function foooPdf() {
    $rep = $this->getResponse('binary');

    Zend_Loader::loadClass('Zend_Pdf');
    $pdf = new Zend_Pdf();
    $pdf->pages = ($page = $pdf->newPage('A4'));
    $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
    $page->setFont($font, 32);
    $page->drawText('Zend Framework with Jelix !', 120, 500);        
       
    $rep->content = $pdf->render();
    $rep->outputFileName = 'fooo.pdf';
    $rep->mimeType = 'application/pdf';

    return $rep;    
}