1

Bonjour (ça fait longtemps que je ne suis pas venu ici smile )

Bon ben tout est dans le titre (ou presque tout).

En gros voilà ce qui se passe :
J'utilise Zend Framework (1.11), j'ai placé html2pdf dans le répertoire library (le répertoire porte le nom Html2pdf), j'ai ajouté un fichier Html2pdf.php construit de la sorte :

<?php
include_once('html2pdf.class.php');
class Html2pdf_Html2pdf
{
     public function __construct(){

    }

     public function __destruct(){

    }

    public function init($orientation = 'P', $format = 'A4', $langue='fr', $unicode=true, $encoding='UTF-8', $marges = array(5, 5, 5, 8)){
        return new HTML2PDF ($orientation, $format, $langue, $unicode, $encoding, $marges);
    }
}



Le namespace est défini dans le bootstrap::initAutoload()
$autoloader->registerNamespace('Html2pdf_');


Mon controller abtract "principal" appelle html2pdf depuis sont predispatch()

abstract class ModuleControllerAbstract extends Zend_Controller_Action {
    protected $PDF;

    /**
     * preDispatch
     */
    public function preDispatch() {
        //htmlToPdf
        $this->PDF = new Html2pdf_Html2pdf();
    }
...
}



Mon contrôler utilise et tente de générer un PDF (et c'est là que le bas blesse)
class Index_PdfController extends ModuleControllerAbstract {

    public function exportPdfAction(){
        $html2pdf = $this->PDF->init('P','A4','fr');
        $content = "<page><h1>Exemple d'utilisation</h1><br>Ceci est un <b>exemple d'utilisation</b>de <a href='http://html2pdf.fr/'>HTML2PDF</a>.<br></page>";
        $html2pdf->WriteHTML($content);

        $html2pdf->Output('exemple.pdf');

        $this->_helper->viewRenderer->setNoRender();
    }
}


Et lorsque je teste j'ai l'erreur indiquée en titre.

Si quelqu'un a une idée...

Pour info, $html2pdf est bien un object de classe HTML2PDF (vu en var_dump)


[edit]
J'ai fais un test, juste pour voir, j'ai modifié ma méthode exportPdfAction pour qu'elle soit identique (ou presque) à l'exemple du site :
    public function exportPdfAction(){
        $html2pdf = new HTML2PDF('P','A4','fr');
        $content = "<page><h1>Exemple d'utilisation</h1><br>Ceci est un <b>exemple d'utilisation</b>de <a href='http://html2pdf.fr/'>HTML2PDF</a>.<br></page>";
        $html2pdf->WriteHTML($html2pdf->getHtmlFromPage($content));

        $html2pdf->Output('exemple.pdf');

        $this->_helper->viewRenderer->setNoRender();
    }

Le problème reste le même

2

Trouvé:

eux que cela intéresse, il faut mettre un die();Pour cexit(); ou un fet un $this->_helper->viewRenderer->setNoRender(); à la fin de la méthode du contrôleur. en efdiquer à Zend de poursuivre alors que nous souhaitons afficher le PDF (ou l'enregistrer) sans ce die(); va int(); ou exi HTML2PDF tente de générer le PDF en intégrant (je pense) des instructions ZEND trop lourdes pour lui et ne ferme pas le PDF avant de l'envoyer.

CQFD