Utiliser une Library Externe : Html2Pdf

Avant tout une passion

Utiliser une Library Externe : Html2Pdf

Aujourd’hui nous allons voir comment implanter HTML2PDF à Zend. Cet article m’a été demandé par quelques personnes ces derniers jours et justement, je pensais en parler.

HTML2PDF ainsi que d’autres libraries PHP disponibles sur internet comme PHPThumb n’utilisent pas la convention PEAR. Leur inclusion ainsi que leur utilisation ne s’effectuera pas comme les libraries utilisant la convention PEAR.

Afin d’utiliser facilement la library html2pdf, nous allons passer par une aide d’action Zend, permettant de faire la transition (Vous pouvez faire une aide de vue ou autre chose utilisant la même logique).

Pour ce faire, nous allons créer une nouvelle classe PHP dans notre library perso App. Elle s’appellera App_Helper_Html2Pdf.

/**
 * Ligne nous permettant d'utiliser la classe HTML2PDF dans souci avec Zend
 */
require_once LIBRARY_PATH.'/html2pdf/html2pdf.class.php';

class App_Helper_Html2Pdf extends Zend_Controller_Action_Helper_Abstract{

    /**
     * @var Zend_Loader_PluginLoader
     */
    public $pluginLoader;

    /**
     * Constructeur: initialisee le chargeur de classes d'aides ou plugins
     *
     * @return void
     */
    public function __construct()
    {
        $this->pluginLoader = new Zend_Loader_PluginLoader();
    }

    /**
     * Constructeur
     *
     * @param string sens portrait ou landscape
     * @param string format A4, A5, ...
     * @param string langue : fr, en, it...
     * @param boolean $unicode TRUE means that the input text is unicode (default = true)
     * @param  String $encoding charset encoding; default is UTF-8
     * @param array marges par defaut, dans l'ordre (left, top, right, bottom)
     * @return null
     */
    public function instanceClass($sens = 'P', $format = 'A4', $langue='fr', $unicode=true, $encoding='UTF-8', $marges = array(5, 5, 5, 8)){
        $html2pdf = new HTML2PDF($sens, $format, $langue, $unicode, $encoding, $marges);

        return $html2pdf;
    }

    /**
     * Fonction permettant d'appeler directement instanceClass
     */
    public function direct($sens = 'P', $format = 'A4', $langue='fr', $unicode=true, $encoding='UTF-8', $marges = array(5, 5, 5, 8)){
        return $this->instanceClass($sens, $format, $langue, $unicode, $encoding, $marges);
    }
}

Pour que Html2Pdf marche ici, nous utilisons, à la première ligne de notre fichier, un require_once pointant sur la classe principale. De là, nous sommes tranquille pour la suite, PHP va se débrouiller. Pour utiliser votre aide d’action, n’oubliez pas de rajouter la partie suivante dans votre Bootstrap.

protected function _initHelpers(){
    Zend_Controller_Action_HelperBroker::addPrefix('App_Helper');
}

Pour finir, pour récupérer votre objet PDF, vous n’aurez plus qu’à faire ceci dans un controller et vous pourrez manipuler votre objet Html2Pdf :

$html2pdf = $this->_helper->Html2Pdf('P','A4','fr', false, 'ISO-8859-15');

Maintenant vous savez comment rajouter une library externe n’utilisant pas la convention PEAR au sein d’un projet Zend. Malheureusement, avec l’arrivée de ZF2 et de PHP5.3 avec les namespaces, cela risque encore de changer.

 

Commentaire : 1

  1. hiddouche dit :

    bravo benjamin j’ai s’inspirer beaucoup sur tes codes , je suis un jeune marocain j’ai le meme processus que toi presque , moi aussi je suis très intéressé par le développement web et surtout avec zend framework et php5 je suis analyste développeur chez WebConsulting en meme temps pour cette année j’ai une licence professionnelle en informatique à l’université des sciences de meknes ,

    je vous souhaite une grande réussite sur ce domaine

    cordialement

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.