Bonsoir,
Je voudrais générer un pdf à l'aide d'un fichier twig mais j'ai pas mal de problèmes. Je voudrais savoir si ma façon de faire est correcte.
J'ai mon controller suivant :
Mon template FactureVide.html.twig :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public function exec_cuAction($id) { //CU 4 : imprimer toutes les factures switch ($id){ case 2: // *** Impression Facture vide *** $infos = null; $html= $this->render('PeriscopeAdminBundle:Admin:FactureVide.html.twig',array('infos'=> $infos)); //les content pour le pdf $name = 'factureVide.pdf'; return $this->render('PeriscopeAdminBundle:Admin:afficher_factures_pdf.html.php', array('name'=>$name, 'html'=>$html)); break; }
Et mon afficher_factures_pdf.html.php qui est la réponse de mon controleur.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 <page orientation="portrait" format="A4" style="font-size: 18px"> <div id="wrapper"> <div id="left_informations"> <br><br><br> <div id="fields"> <div id="invoice_id"> <span>Facture n____ </span> <span>____________</span> <span>Date : ___/___/______</span> </div><br> <div>Nom de l'enfant :</div><br> <div>Primaire/Maternelle : </div><br> <div>Date de naissance : </div><br> <div>Classe : </div><br> <div>Enseignant : </div><br> <div>Taux horaire :</div><br> <div>Heures matin : </div><br> <div>Heures soir : </div><br> <div>Total heures : </div> <h4>Net payer du mois : </h4> <br> <div>Votre retard la fin du mois precédent : </div><br> <h4>RETARD : </h4> <div>Votre situation nette : </div> <br> <div> Association loi 1901, SIRET 39217524600017 Code APE 913 E <br> Exonr de TVA Article 261 du CGI </div> <div><i>Partie conserver</i></div> <div style="width:610px;">---------------------------------------------------------------------------------------------------------</div> <br> <div id="invoice_id"> <span>Facture n____ </span> <span>____________</span> <span>Date: __/__/_____</span> </div> <div>Nom de l'enfant :</div> <br> <div>Votre situation nette : </div> <br> <div>Payer en espce la somme de :</div> <br> <div>Payer par chque l'ordre de Priscope n</div> <div style="margin-left:100px;">Banque : </div> <div style="margin-left:100px;">Somme : </div> <br><br> <div style="margin-left:100px;"> <span><u>Date:</u> ___/___/______</span> <span><u>Signature :</u> </span> </div> <br><br><br> </div> </div> <div id="right_ads"> </div> </div> </page>
Résultat : une page pdf contenant : "HTTP/1.0 200 OK Cache-Control: no-cache Date: Mon, 11 Mar 2013 19:37:29 GMT" et des sauts de lignes qui ne devraient pas avoir lieu.
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 <?php ob_start(); try { $html2pdf = new \Html2Pdf_Html2Pdf('P', 'A4', 'fr'); $html2pdf->pdf->SetDisplayMode('fullpage'); $html2pdf->writeHTML($html); $html2pdf->Output($name); exit; } catch(HTML2PDF_exception $e) { echo $e; exit; } ?>
De plus, je ne sais pas si ma façon de faire est bonne, c'est-à-dire renvoyer une page php (qui se charge de générer le pdfà depuis mon controleur.
PS: Je n'ai pas trouvé de tuto sur la génération de pdf avec HTML2PDF et Symfony2.
PS2 : HTML2PDF est bien inclu dans mes lib.
Merci d'avance !
Partager