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 :
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;
}
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
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>
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
<?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;
	    }
 
?>
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.

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 !