Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Avez-vous déjà intégré Html2PDF (ou une autre librairie de création PDF à partir d'une view ZF) ?
Je suis preneur de tout retour d'expérience !
Jean
Hors ligne
Oui je l'utilise actuellement,
Sans soucis hors mis la compatibilité avec la version 5 de adobe reader
Hors ligne
Aurais-tu un exemple à nous montrer ?
Pour ma part, voici mon controller (simple...). J'ai indiqué l'endroit où cela plante.
Question subsidiaire, comment fais-tu pour convertir une vue+Layout dans un PDF ?
class Html2pdfController extends Zend_Controller_Action { public function indexAction() { $view = new Zend_View(); // passage d'une variable $this->view->name = 'Toto'; ob_start(); echo "Une phrase simple...."; //echo $this->view->render('/html2pdf/index.phtml'); $html = ob_get_clean(); require_once(dirname(__FILE__).'/../../library/html2pdf/html2pdf.class.php'); $pdf = new HTML2PDF(); $pdf->setModeDebug(); $pdf->setDefaultFont('Arial'); $pdf->setNewPage(); $pdf->writeHTML($html); $pdf->Output('fichiercible.pdf','D'); // CA PLANTE ICI !!!! echo '<br> OK!!!<br>'; } }
Hors ligne
Pour ma part je n'incorpore pas le layout dans le pdf...
public function totoAction() { $html = $this->view->render($script); require_once(HTML2PDF); // initialisation de HTML2PDF $html2pdf = new HTML2PDF('P','A4','fr', array(0, 0, 0, 0)); $date = new Zend_Date(); $this->view->date = $date->toString(); // affichage de la page en entier $html2pdf->pdf->SetDisplayMode('fullpage'); $enTete = $this->view->render("entetepdf.phtml"); $piedDePage = $this->view->render("piedpdf.phtml"); $html2pdf->WriteHTML($enTete . $html . $piedDePage); $html2pdf->Output(REP_TEMP_PUBLIC . 'toto.pdf', "F"); $this->view->lienPdf = $url; $this->render("pdf", null, true); }
la constante REP_TEMP_PUBLIC est le chemin absolu de mon fichier
Ma vue pdf me permet simplement de faire un redirect pour l'ouvrir dans un autre onglet
Dernière modification par playmobilette (08-10-2010 12:05:43)
Hors ligne
Merci beaucoup, l'exemple fonctionne très bien.
En testant d'autres options, j'ai rencontré un problème lorsque je demande à HTML2PDF de retourner directement le fichier PDF. Je ne comprends pas pourquoi le simple fait de modifier la destination du PDF (fichier ou envoi du fichier) crée une erreur. Avez-vous rencontré ce problème ?
// option D $html2pdf->Output('toto.pdf', 'D'); ======================= la librairie plante avec l'erreur : ======================= Notice: Undefined property: MyPDF::$numpages in C:\travail\www\test\library\html2pdf\_tcpdf\tcpdf.php on line 2621 Notice: Undefined property: MyPDF::$page in C:\travail\www\test\library\html2pdf\_tcpdf\tcpdf.php on line 2551 TCPDF ERROR: Some data has already been output, can't send PDF file
Dans votre exemple, j'ai adapté le require_once, savez-vous pourquoi require_once(HTML2PDF) "plante" ?
// fonctionne require_once(dirname(__FILE__).'/../../library/html2pdf/html2pdf.class.php'); //plante require_once(HTML2PDF);
Cordialement,
Jean
Dernière modification par jean (08-10-2010 11:33:53)
Hors ligne
L'erreur est assez parlante Some data has already been output, can't send PDF file, il doit rester un echo avant je pense.
dans mon fichier de conf j'ai défini la constante et placer les fichiers Html2pdf dans le repertoire LIB
define("HTML2PDF", "html2pdf_v4.01/html2pdf.class.php");
Pour ma part je ne propose pas de téléchargement direct je l'affiche toujours dans le navigateur
Hors ligne
Merci pour le retour.
En complément, je viens de recevoir un mail m'informant que Thorin'studio venait de publier un article à ce sujet :
http://www.throrinstudio.com/blog/index … article/62
Je vais vite essayer ce qu'il propose...
Hors ligne
Le résultat est concluant ?
Hors ligne