[Symfony2] Génération de PDF.

Eléphanteau du PHP | 25 Messages

12 mars 2012, 18:14

Bonjour,

Oui c'est encore moi, la symfony 2 me pousse à bout. Je cherche comment utiliser html2pdf ou fpdf.

A savoir:

Ma view:
		<h1><img alt="" src="{{ asset('bundles/lgbbourselivres/images/student.png') }}">GÉNÉRATION D'UN AVOIR</h1>
		<hr>
		<div style="list-style-type:none">
			
			<h1>FCPE Bourse 2011/2012</h1>

			<h2 style="text-align:right">Avoir en Euros</h2>

			<p>
				11 impasse Léon Marrel<br />
				42800 Rive de Gier<br />
				<br />
				Tél: 0477758337
			</p>
			<table align="right" style="border: 1px solid black" >
				<tr>
					<td><b>
						{% for subarray in Eleve %}
							{{ subarray.nom }}
							{{ subarray.prenom }}
						{% endfor %}		
					</b></td>
				</tr>
				<tr>
					<td>
						{% for resultAdresse in InfoParent %}
							<li>{{ resultAdresse.adresse }}</li>
							<li>{{ resultAdresse.cp }} 
								{{ resultAdresse.ville }}</li>
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />

			

			<table border="1" style="width:100%;text-align:center;">
				<tr style="background-color:#979797">
					<td>Numéro</td>
					<td>Date</td>
					<td>Code Client</td>
					<td>Mode de Réglèment</td>
					<td>Classe</td>
				</tr>
				<tr>
					<td>AV {{ IdAvoir }}</td>
					<td>{{Date}}</td>
					<td>
						{% for subarray in Eleve %}
							{{ subarray.ideleve }}
						{% endfor %}
					</td>
					<td> Chèque en Euros </td>
					<td>
						{% for resultClasse in Classe %}
							{{ resultClasse.nom}}
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />

			<table border="1" style="width:100%;">
				<tr style="text-align:center; background-color:#979797">
					<td>Code Livre</td>
					<td>Désignation</td>
					<td>Qté</td>
					<td>P.U</td>
				</tr>
				<tr>
					<td style="text-align:center;">
						{% for codeEanLivre in codeEan %}
							{{ codeEanLivre }}<br />
						{% endfor %}
					</td>
					<td>
						{% for titreLivre in Titre %}
							{{ titreLivre }}<br />
						{% endfor %}
					</td>
					<td style="text-align:center;">{% for qantite in Qte %}
							<li>1</li>
						{% endfor %}
					</td>
					<td style="text-align:right;">
						{% for prixRepriseLivre in prixReprise %}
							{{ prixRepriseLivre }}€<br />
						{% endfor %}
					</td>
				</tr>

			</table>
			
			<p>Reprise de {{ NbrLivre }} Livres.</p>
			<table align="right" style="border: 1px solid black">
				<tr>
					<td>Total:<span style="margin-left: 80px"> </span>{{ Montant }} €</td>
				</tr>
			</table>
			<br />
			<br />
			<table align="right" style="border: 3px solid black">
				<tr>
					<td> MONTANT A PAYER: <span style="margin-left: 80px"> </span> {{ Montant }} €</td>
				</tr>
			</table>
			<p><b>Conservez moi</b> pour la <b>VENTE</b> ou pour tout <b>LITIGE</b>. <br /> <b>MERCI</b>.  </p>
			<br />
			<br />
			<br />
			<p>Nous sommes <b>conventionnés par la région Rhône-Alpes</b> pour la vente des livres à la rentrée.
				<br /> 
				Nous pouvons donc encaisser la <b>carte M'ra</b>.</p>

			<br />
			<br />
			
			<div align="right">
				<input class="btn-success" type="button" value="Enregistrer & Imprimer" onclick="location.href='convertPdf.php';">
			</div>
Voila dans cette vue j'ai plusieurs variables que me donne mon controlleur qui ne sont pas constante. Je les ai souvent stocker dans un tableau. Et cette taille de tableau varie suivant un count que j'éffectue. #-o

Image

Je vous mets un petit screen pour plus d'explication où je coince. Je dois générer un pdf d'une partie de ma page.

J'avais donc pensé mettre ce que je veux dans un variable. mais le problème ce sont mes variables stocké dans un tableau. Vue que je dois toutes les afficher d'un coup mais bien organisé.

Qui pourrait me donner une doc ou autre a étudier pour l'association d'une librairie de convertion pdf pour son utilisation dans symfony 2? car la je sèche totalement. Et ça fait 5 jours que je suis dessus en éssayant avec fpdf ou html2pdf. Ainsi que des tutoriels avec symfony 1.4 .... Rien ne marche

Aidez moi :priere:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 mars 2012, 18:20

Le système de vue est un composant indépendant accessible depuis le service 'templating'.

Pour générer des PDF, j'utiliserais ce service pour générer le contenu HTML de mon PDF, puis je passerais ce contenu à HTML2PDF.
Pour passer des variables lorsque tu utilises directement le service de templating, c'est juste un tableau à passer comme 2nd argument de la méthode render()
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 25 Messages

12 mars 2012, 20:32

Je vais bosser la doc je te remercie zeus encore une fois. Je vous metterais ma solution si j'y arrive.

Eléphanteau du PHP | 25 Messages

13 mars 2012, 18:02

Bien alors voilà mon exploit (Ou pas du tout meme !!).
$html=$this->renderView('LGBBourseLivresBundle:Rachat:synthese.html.twig',array('Eleve'=> $eleve , 'Titre'=>$titreLivre ,
                                                                                       'codeEan'=>$codeEanLivre, 'prixReprise'=>$prixRepriseLivre, 
                                                                                        'discipline'=>$disciplineLivre, 'InfoParent'=>$resultAdresse,
                                                                                        'Classe'=>$resultClasse, 'NbrLivre'=>$resultCount, 
                                                                                        'Montant'=>$total,'IdAvoir'=>$resultAvoir,
                                                                                        'Qte'=>$quantite,'Date'=>$date));

        require_once(dirname(__FILE__).'/../Resources/public/html2pdf/html2pdf.class.php');

        $html2pdf = new \HTML2PDF('P','A4','fr');
        $html2pdf->pdf->SetDisplayMode('real');
        $html2pdf->writeHTML($html, isset($_GET['vuehtml']));
        $fichier = $html2pdf->Output('Av_'.$resultAvoir.'_'.$nom.'_'.$prenom.'.pdf');

        $response = new Response();
        $response->clearHttpHeaders();
        $response->setContent(file_get_contents($fichier));
        $response->headers->set('Content-Type', 'application/force-download'); 
        $response->headers->set('Content-disposition', 'filename='. $fichier);
 
        return $response;
Je pensais que ça marcherais ... Et bien non !

Voila l'érreur que symfony 2 me dit bien gentillement:
Notice: Undefined offset: -1 in C:\wamp\www\Symfony\src\LGB\BourseLivresBundle\Resources\public\html2pdf\html2pdf.class.php line 1060
Soit ce que je lui donne a traiter, il ne l'aime pas. Soit j'ai un html2pdf tout cassé...

Je vous donne mon twig:
<h1>FCPE Bourse 2011/2012</h1>

			<h2 style="text-align:right">Avoir en Euros</h2>

			<p>
				11 impasse Léon Marrel<br />
				42800 Rive de Gier<br />
				<br />
				Tél: 0477758337
			</p>
			<table align="right" style="border: 1px solid black" >
				<tr>
					<td><b>
						{% for subarray in Eleve %}
							{{ subarray.nom }}
							{{ subarray.prenom }}
						{% endfor %}		
					</b></td>
				</tr>
				<tr>
					<td>
						{% for resultAdresse in InfoParent %}
							<li>{{ resultAdresse.adresse }}</li>
							<li>{{ resultAdresse.cp }} 
								{{ resultAdresse.ville }}</li>
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />

			

			<table border="1" style="width:100%;text-align:center;">
				<tr style="background-color:#979797">
					<td>Numéro</td>
					<td>Date</td>
					<td>Code Client</td>
					<td>Mode de Réglèment</td>
					<td>Classe</td>
				</tr>
				<tr>
					<td>AV {{ IdAvoir }}</td>
					<td>{{Date}}</td>
					<td>
						{% for subarray in Eleve %}
							{{ subarray.ideleve }}
						{% endfor %}
					</td>
					<td> Chèque en Euros </td>
					<td>
						{% for resultClasse in Classe %}
							{{ resultClasse.nom}}
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />

			<table border="1" style="width:100%;">
				<tr style="text-align:center; background-color:#979797">
					<td>Code Livre</td>
					<td>Désignation</td>
					<td>Qté</td>
					<td>P.U</td>
				</tr>
				<tr>
					<td style="text-align:center;">
						{% for codeEanLivre in codeEan %}
							{{ codeEanLivre }}<br />
						{% endfor %}
					</td>
					<td>
						{% for titreLivre in Titre %}
							{{ titreLivre }}<br />
						{% endfor %}
					</td>
					<td style="text-align:center;">{% for qantite in Qte %}
							<li>1</li>
						{% endfor %}
					</td>
					<td style="text-align:right;">
						{% for prixRepriseLivre in prixReprise %}
							{{ prixRepriseLivre }}€<br />
						{% endfor %}
					</td>
				</tr>

			</table>
			
			<p>Reprise de {{ NbrLivre }} Livres.</p>
			<table align="right" style="border: 1px solid black">
				<tr>
					<td>Total:<span style="margin-left: 80px"> </span>{{ Montant }} €</td>
				</tr>
			</table>
			<br />
			<br />
			<table align="right" style="border: 3px solid black">
				<tr>
					<td> MONTANT A PAYER: <span style="margin-left: 80px"> </span> {{ Montant }} €</td>
				</tr>
			</table>
			<p><b>Conservez moi</b> pour la <b>VENTE</b> ou pour tout <b>LITIGE</b>. <br /> <b>MERCI</b>.  </p>
			<br />
			<br />
			<br />
			<p>Nous sommes <b>conventionnés par la région Rhône-Alpes</b> pour la vente des livres à la rentrée.
				<br /> 
				Nous pouvons donc encaisser la <b>carte M'ra</b>.</p>
Je me tire les cheveux.. Je vais finir chauve !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 mars 2012, 18:46

ne passe pas par $this->renderView(), mais bien par $this->get('templating')->render()
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 25 Messages

13 mars 2012, 18:54

J'ai remplacer le render view mais j’ai toujours la même erreur.

Je sens je vais shunter les notices si ça continue XD

Mammouth du PHP | 568 Messages

14 mars 2012, 10:37

Et en procédant par étape ?

L'affichage de la vue avec tes variables fonctionne ?

Si c'est ok, enregistre le pdf sur le disk et regarde s'il s'ouvre.

Si c'est ok, c'est juste l'envoie du pdf au navigateur qui foire.

Eléphanteau du PHP | 25 Messages

14 mars 2012, 20:16

Et bien je pense vue que c'est un copié collé de ma vue qui fonctionne... donc je pense pas que ça vienne de là.

Et je n'ai rien qui s'enregistre .. Comme je le pensais c'est a la génération du PDF que ça foire mais j'arrive pas a trouver ou ...

Eléphanteau du PHP | 25 Messages

15 mars 2012, 11:28

Je viens de réussir a générer le "pdf". J'ai bien acrobat reader qui se lance mais c'est vide...

Pourtant j'ai simplement fait un copié coller de ma view que j'affiche en dehors d'un pdf.

Je vous finir la view qui fonctionne en dehors du pdf.
{% extends "LGBBourseLivresBundle:Rachat:layout.html.twig" %}
{% block title %}{{ parent() }} - Accueil{% endblock %}

{% block body %}
	<div>
		<h1><img alt="" src="{{ asset('bundles/lgbbourselivres/images/student.png') }}">GÉNÉRATION D'UN AVOIR</h1>
		<hr>
		<div style="list-style-type:none">
			
			<h1>FCPE Bourse 2011/2012</h1>

			<h2 style="text-align:right">Avoir en Euros</h2>

			<p>
				11 impasse Léon Marrel<br />
				42800 Rive de Gier<br />
				<br />
				Tél: 0477758337
			</p>
			<table align="right" style="border: 1px solid black" >
				<tr>
					<td><b>
						{% for subarray in Eleve %}
							{{ subarray.nom }}
							{{ subarray.prenom }}
						{% endfor %}		
					</b></td>
				</tr>
				<tr>
					<td>
						{% for resultAdresse in InfoParent %}
							<li>{{ resultAdresse.adresse }}</li>
							<li>{{ resultAdresse.cp }} 
								{{ resultAdresse.ville }}</li>
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />

			

			<table border="1" style="width:100%;text-align:center;">
				<tr style="background-color:#979797">
					<td>Numéro</td>
					<td>Date</td>
					<td>Code Client</td>
					<td>Mode de Réglèment</td>
					<td>Classe</td>
				</tr>
				<tr>
					<td>AV {{ IdAvoir }}</td>
					<td>{{Date}}</td>
					<td>
						{% for subarray in Eleve %}
							{{ subarray.ideleve }}
						{% endfor %}
					</td>
					<td> Chèque en Euros </td>
					<td>
						{% for resultClasse in Classe %}
							{{ resultClasse.nom}}
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />

			<table border="1" style="width:100%;">
				<tr style="text-align:center; background-color:#979797">
					<td>Code Livre</td>
					<td>Désignation</td>
					<td>Qté</td>
					<td>P.U</td>
				</tr>
				<tr>
					<td style="text-align:center;">
						{% for codeEanLivre in codeEan %}
							{{ codeEanLivre }}<br />
						{% endfor %}
					</td>
					<td>
						{% for titreLivre in Titre %}
							{{ titreLivre }}<br />
						{% endfor %}
					</td>
					<td style="text-align:center;">{% for qantite in Qte %}
							<li>1</li>
						{% endfor %}
					</td>
					<td style="text-align:right;">
						{% for prixRepriseLivre in prixReprise %}
							{{ prixRepriseLivre }}€<br />
						{% endfor %}
					</td>
				</tr>

			</table>
			
			<p>Reprise de {{ NbrLivre }} Livres.</p>
			<table align="right" style="border: 1px solid black">
				<tr>
					<td>Total:<span style="margin-left: 80px"> </span>{{ Montant }} €</td>
				</tr>
			</table>
			<br />
			<br />
			<table align="right" style="border: 3px solid black">
				<tr>
					<td> MONTANT A PAYER: <span style="margin-left: 80px"> </span> {{ Montant }} €</td>
				</tr>
			</table>
			<p><b>Conservez moi</b> pour la <b>VENTE</b> ou pour tout <b>LITIGE</b>. <br /> <b>MERCI</b>.  </p>
			<br />
			<br />
			<br />
			<p>Nous sommes <b>conventionnés par la région Rhône-Alpes</b> pour la vente des livres à la rentrée.
				<br /> 
				Nous pouvons donc encaisser la <b>carte M'ra</b>.</p>

			<br />
			<br />
			
			<div align="right">
				<input class="btn-success" type="button" value="Enregistrer & Imprimer" onclick="location.href='{{path('LGBBourseLivresBundle_convertPdf')}}'">
			</div>
		</div>
	</div>	
{% endblock %}

{% block aide %}Ici on recherche un élève soit par son ID. Soit en saisissant ses informations.Si l'élève n'est pas dans la liste cliquez sur "ajouter un élève".{% endblock %}
Dans mon controller j'ai rajouter le ob_start() et ob_get_clean().

controller:
require_once(dirname(__FILE__).'/../Resources/public/html2pdf/html2pdf.class.php');

        ob_start();       
       $html=$this->get('templating')->render('LGBBourseLivresBundle:Rachat:synthese.html.twig',array('Eleve'=> $eleve , 'Titre'=>$titreLivre ,
                                                                                       'codeEan'=>$codeEanLivre, 'prixReprise'=>$prixRepriseLivre, 
                                                                                        'discipline'=>$disciplineLivre, 'InfoParent'=>$resultAdresse,
                                                                                        'Classe'=>$resultClasse, 'NbrLivre'=>$resultCount, 
                                                                                        'Montant'=>$total,'IdAvoir'=>$resultAvoir,
                                                                                        'Qte'=>$quantite,'Date'=>$date));


        $html=ob_get_clean();
        
        $html2pdf = new \HTML2PDF('P','A4','fr');
        $html2pdf->pdf->SetDisplayMode('real');
        $html2pdf->writeHTML($html, isset($_GET['vuehtml']));
        $fichier = $html2pdf->Output('Av_'.$resultAvoir.'_'.$nom.'_'.$prenom.'.pdf');

        $response = new Response();
        $response->clearHttpHeaders();
        $response->setContent(file_get_contents($fichier));
        $response->headers->set('Content-Type', 'application/force-download'); 
        $response->headers->set('Content-disposition', 'filename='. $fichier);
 
        return $response;
Et maintenant la vue que je lui passe:
<h1>FCPE Bourse 2011/2012</h1>

			<h2 style="text-align:right">Avoir en Euros</h2>

			<p>
				11 impasse Léon Marrel<br />
				42800 Rive de Gier<br />
				<br />
				Tél: 0477758337
			</p>
			<table align="right" style="border: 1px solid black" >
				<tr>
					<td><b>
						{% for subarray in Eleve %}
							{{ subarray.nom }}
							{{ subarray.prenom }}
						{% endfor %}		
					</b></td>
				</tr>
				<tr>
					<td>
						{% for resultAdresse in InfoParent %}
							<li>{{ resultAdresse.adresse }}</li>
							<li>{{ resultAdresse.cp }} 
								{{ resultAdresse.ville }}</li>
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />
			<br />
			<br />
			<br />
			<br />
			<br />

			

			<table border="1" style="width:100%;text-align:center;">
				<tr style="background-color:#979797">
					<td>Numéro</td>
					<td>Date</td>
					<td>Code Client</td>
					<td>Mode de Réglèment</td>
					<td>Classe</td>
				</tr>
				<tr>
					<td>AV {{ IdAvoir }}</td>
					<td>{{Date}}</td>
					<td>
						{% for subarray in Eleve %}
							{{ subarray.ideleve }}
						{% endfor %}
					</td>
					<td> Chèque en Euros </td>
					<td>
						{% for resultClasse in Classe %}
							{{ resultClasse.nom}}
						{% endfor %}
					</td>
				</tr>
			</table>
			<br />

			<table border="1" style="width:100%;">
				<tr style="text-align:center; background-color:#979797">
					<td>Code Livre</td>
					<td>Désignation</td>
					<td>Qté</td>
					<td>P.U</td>
				</tr>
				<tr>
					<td style="text-align:center;">
						{% for codeEanLivre in codeEan %}
							{{ codeEanLivre }}<br />
						{% endfor %}
					</td>
					<td>
						{% for titreLivre in Titre %}
							{{ titreLivre }}<br />
						{% endfor %}
					</td>
					<td style="text-align:center;">{% for qantite in Qte %}
							<li>1</li>
						{% endfor %}
					</td>
					<td style="text-align:right;">
						{% for prixRepriseLivre in prixReprise %}
							{{ prixRepriseLivre }}€<br />
						{% endfor %}
					</td>
				</tr>

			</table>
			
			<p>Reprise de {{ NbrLivre }} Livres.</p>
			<table align="right" style="border: 1px solid black">
				<tr>
					<td>Total:<span style="margin-left: 80px"> </span>{{ Montant }} €</td>
				</tr>
			</table>
			<br />
			<br />
			<table align="right" style="border: 3px solid black">
				<tr>
					<td> MONTANT A PAYER: <span style="margin-left: 80px"> </span> {{ Montant }} €</td>
				</tr>
			</table>
			<p><b>Conservez moi</b> pour la <b>VENTE</b> ou pour tout <b>LITIGE</b>. <br /> <b>MERCI</b>.  </p>
			<br />
			<br />
			<br />
			<p>Nous sommes <b>conventionnés par la région Rhône-Alpes</b> pour la vente des livres à la rentrée.
				<br /> 
				Nous pouvons donc encaisser la <b>carte M'ra</b>.</p>
Si vous avez une idée de pourquoi mon pdf est .. vide je suis prenneur.

Eléphanteau du PHP | 25 Messages

19 mars 2012, 15:39

Voila que tout fonctionne ! Miracle? Non juste que je codais en XHTML et non en HTML (frappez moi :3).

Donc je vous donne la solution.
require_once(dirname(__FILE__).'/../Resources/public/html2pdf/html2pdf.class.php');
              
        $html=$this->get('templating')->render('LGBBourseLivresBundle:Rachat:synthese.html.twig',array('Eleve'=> $eleve , 'Titre'=>$titreLivre ,
                                                                                       'codeEan'=>$codeEanLivre, 'prixReprise'=>$prixRepriseLivre, 
                                                                                        'discipline'=>$disciplineLivre, 'InfoParent'=>$resultAdresse,
                                                                                        'Classe'=>$resultClasse, 'NbrLivre'=>$resultCount, 
                                                                                        'Montant'=>$total,'IdAvoir'=>$resultAvoir,
                                                                                        'Qte'=>$quantite,'Date'=>$date));
        
        //var_dump($html);
        $html2pdf = new \HTML2PDF('P','A4','fr');
        $html2pdf->pdf->SetDisplayMode('real');
        $html2pdf->pdf->SetTitle('Av_'.$resultAvoir.'_'.$nom.'_'.$prenom);
        $html2pdf->writeHTML($html);
        $fichier = $html2pdf->Output("PdfAvoir\Av_".$resultAvoir."_".$nom."_".$prenom.".pdf",'F');
Le var_dump que zeus ma fait découvrir me change la vie ! Sans cette petite ligne je serais encore bloqué. C'est pourquoi je vous conseille de la mettre une fois que vous récupéré votre page pour voir si elle a bien été récupéré.
Comme vous l'avez peut etre remarqué il y a un petit 'F' en paramètre de mon output. A quoit sert t-il? Et bien il me permet d'enregistrer mon pdf directement sans que celui ci s'affiche.

Voila le html:
<page>
	<h1>FCPE Bourse 2011/2012</h1>

			<h2 style="text-align:right">Avoir en Euros</h2>

			<p>
				11 impasse Léon Marrel<br>
				42800 Rive de Gier<br>
				<br>
				Tél: 0477758337
			</p>
			<table align="right" style="border: 1px solid black" >
				<tr>
					<td><b>
						{% for subarray in Eleve %}
							{{ subarray.nom }}
							{{ subarray.prenom }}
						{% endfor %}		
					</b></td>
				</tr>
				<tr>
					<td>
						{% for resultAdresse in InfoParent %}
						<ul style="list-style-type:none">
							<li>{{ resultAdresse.adresse }}</li>
							<li>{{ resultAdresse.cp }} 
								{{ resultAdresse.ville }}</li>
						</ul>
						{% endfor %}
					</td>
				</tr>
			</table>
			<br>
			<br>
			<br>
			<br>
			<br>
			<br>

			

			<table border="1" style="text-align:center;  width:100%; margin:0em; font-size:100%">
				<tr style="background-color:#979797;">
					<td style="width:20%">Numéro</td>
					<td style="width:20%">Date</td>
					<td style="width:20%">Code Client</td>
					<td style="width:20%">Mode de Réglèment</td>
					<td style="width:20%">Classe</td>
				</tr>
				<tr>
					<td style="width:20%">AV {{ IdAvoir }}</td>
					<td style="width:20%">{{Date}}</td>
					<td style="width:20%">
						{% for subarray in Eleve %}
							{{ subarray.ideleve }}
						{% endfor %}
					</td>
					<td style="width:20%"> Chèque en Euros </td>
					<td style="width:20%">
						{% for resultClasse in Classe %}
							{{ resultClasse.nom}}
						{% endfor %}
					</td>
				</tr>
			</table>
			<br>

			<table border="1" style="width:100%; font-size:100%; text-align:center;">
				<tr style="background-color:#979797">
					<td style="width:15%">Code Livre</td>
					<td style="width:70%">Désignation</td>
					<td style="width:5%">Qté</td>
					<td style="width:10%">P.U</td>
				</tr>
				<tr>
					<td style="width:15%">
						{% for codeEanLivre in codeEan %}
							{{ codeEanLivre }}<br><br>
						{% endfor %}
					</td>
					<td style="width:70%; text-align:left;">
						{% for titreLivre in Titre %}
							{{ titreLivre }}<br><br>
						{% endfor %}
					</td>
					<td style="width:5%">
						{% for qantite in Qte %}
							1<br><br>
						{% endfor %}
					</td>
					<td style="width:10%; margin-left:0px ;margin-right:5px">
						{% for prixRepriseLivre in prixReprise %}
							{{ prixRepriseLivre }}€<br><br>						
						{% endfor %}
					</td>
				</tr>

			</table>
			
			<p>Reprise de {{ NbrLivre }} Livres.</p>
			<table align="right" style="border: 1px solid black">
				<tr>
					<td>Total:<span style="margin-left: 80px"> </span>{{ Montant }} €</td>
				</tr>
			</table>
			<br>
			<br>
			<table align="right" style="border: 3px solid black">
				<tr>
					<td> MONTANT A PAYER: <span style="margin-left: 80px"> </span> {{ Montant }} €</td>
				</tr>
			</table>
			<p><b>Conservez moi</b> pour la <b>VENTE</b> ou pour tout <b>LITIGE</b>. <br> <b>MERCI</b>.  </p>
			<br>
			<br>
			<br>
			<p>Nous sommes <b>conventionnés par la région Rhône-Alpes</b> pour la vente des livres à la rentrée.
				<br> 
				Nous pouvons donc encaisser la <b>carte M'ra</b>.</p>
</page>

Aymelic
Invité n'ayant pas de compte PHPfrance

27 janv. 2014, 16:41

Tu l'a mis ou ton dossier html2pdf ?
Merci