Bonjour,
Je vous expose mon problème :
J'ai un controlleur "Devis" avec une action "generer" qui affiche un devis à l'écran. A la fin de cette page, il y a un lien vers une action "genererpdf" du même controlleur "Devis".
Voici le code de cette action "genererpdf" :
Je désactive donc l'utilisation du layout pour cette action et le fichier genererpdf.phtml génère un fichier HTML complet (avec les head, les définitions de style, etc.) dans le but ultime de générer un PDF en utilisant DOMPDF.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public function genererpdfAction() { $this->_helper->layout->disableLayout(); $id = $this->_getParam('devisId'); $devis = new DB_Views_Devis(); $this->view->devis = $devis->fetchById($id); $projet = new DB_Views_Projet(); $this->view->projet = $projet->fetchById($this->view->devis[0]['projetId']); $client = new DB_Views_Client(); $this->view->client = $client->fetchById($this->view->projet[0]['clientId']); $tache = new DB_Views_Tache(); $this->view->taches = $tache->fetchByProjet($this->view->projet[0]['projetId']); }
Pour ce faire, ma vue genererpdf.phtml ne génère pas d'affichage mais tout est placé dans un flux et le flux est ensuite sauvé dans une variable $html.
Mon objectif serait ensuite de pouvoir "repasser" la main à mon controlleur Devis et à l'action "genererpdf" de celui-ci pour qu'il prenne le contenu de cette variable $html et l'utilise pour générer mon PDF en utilisant DOMPDF.
Mais voila ... je ne vois pas comment faire ...
J'ai même tenté, à la fin de ma vue, de faire un
mais quand ensuite, je fais un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Zend_Registry::set('myhtml', $html);
il me dit qu'il n'y a pas de clé de ce nom dans le registre ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Zend_Registry::get('myhtml');
J'ai réussi à générer le PDF en plaçant le code permettant cela (le code de DOMPDF) directement dans ma vue mais je trouve que le solution n'est pas très propre ... en effet, mettre du code PHP dans mes vues ... bof bof ...
Quelqu'un a-t-il une solution pour moi ?
Merci,
Olivier
Partager