1

Bonjour !

Tout d'abord félicitations pour cette librairie de très bonne qualité, et gratuite qui plus est.

J'ai toutefois un problème dans la génération de mon pdf :
Voilà la page HTML que j'aimerais transformer en pdf : http://www.devmind.be/temp/01.html
Et voilà le résultat obtenu : http://www.devmind.be/temp/resultat.pdf

Le code que j'utilise pour la génération est le suivant :

<?php
// récupération du contenu HTML
ob_start();
include(dirname(__FILE__).'/01.html');
$content = ob_get_clean();
$content = utf8_decode($content);

// conversion HTML => PDF
require_once(dirname(__FILE__).'/html2pdf/html2pdf.class.php');

$html2pdf = new HTML2PDF('P','A3', 'fr');
$html2pdf->pdf->SetDisplayMode('default');
$html2pdf->WriteHTML($content);
$html2pdf->Output('resultat.pdf', 'D');
?>


Savez-vous d'où vient le problème ?

Merci d'avance

EDIT : Je viens de voir qu'il fallait mettre dans le titre du sujet la version utilisée et il est apparemment impossible d'éditer le titre donc la version utilisée est la 3.28.

2

cela est du au fait que vous positionnez tous vos éléments de manière relative via des DIVs. D'une part HTML2PDF a encore légèrement du mal pour les positionnements relatifs, et d'autre part, vous avez du coup inutilement pleins de tables imbriquées dans des DIVS, or ces DIVs ne pourront pas être coupée sur plusieurs pages et du coup, si votre tableau grossit trop, ca ne marchera pas.

je vous conseille de fortement simplifier la manière dont vous avez fait votre mise en page. car vous l'avez vraiment compliquée pour rien, avec des div et des positions relatives inutiles et couteuses en conversion.

Autre petite remarque : toutes vos unités sont en pixel, voir sans unité de précisé (cf width="250" ) je vous conseille fortement de n'utiliser que le mm (un pdf c'est pour faire un document papier, les pixels n'existent que sur l'ecran), et de ne plus utiliser width="..." mais style="width:...mm"

voici un exemple pour l'entete de votre fichier :

<link href="./res/facture/styles.css" rel="stylesheet" type="text/css">
<page>
	<table style="width: 100%;">
		<tr style="vertical-align: top">
			<td style="width: 75%">
				<img src="./res/facture/logo.jpg" alt="Reydams" width="340" height="88" /><br />
				<div id="titre">REYDAMS Sales BVBA</div />
				
				TVA: BE 0476.198.338<br />
				Industriepark 1230,<br />
				B-3545 Halen – Belgique<br />
				
				<b>Tel :</b>		+32 (0)13/ 44. 25. 04 - +32 (0)13/ 44. 22. 58<br />
				<b>Fax :</b>		+32 (0)13/ 44. 25. 57<br />
				<b>Email :</b>		info@reydams.be<br />
				<b>Website :</b>	www.reydams.be
			</td>
			<td style="width: 25%; ">
				<table style="width:100%" border="1" cellpadding="0" cellspacing="0" class="table_pages">
					<tr><td style="width:100%" height="30" class="bloc_bgcolor_title_table"><p align="center"><strong>OFFRE DE PRIX N°</strong><strong> </strong></p></td></tr>
					<tr><td style="width:100%" height="30" class="bord_table_cell_pages"><p align="center"><strong>1235</strong></p></td></tr>
					<tr><td style="width:100%" height="30" class="bord_table_cell_pages"><p align="center">Date :    10/10/2010</p></td></tr>
				</table>
				
				<table style="width:100%" border="0" cellpadding="0" cellspacing="0" class="table_pages">
					<tr><td style="width:100%" height="25" class="bloc_bgcolor_title_table"><strong>Nom société bvba</strong></td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages"><strong>TVA:</strong> BE 0459.031.120</td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages"><strong>Nom et prénom client</strong></td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages">Adresse -------straat 48,</td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages">B-1500 HALLE - Belgique</td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages"><strong>Tél:</strong> 015/ 521.521</td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages"><strong>Fax:</strong> 015/521.522</td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages"><strong>GSM:</strong> 0473/ 20.20.20</td></tr>
					<tr><td style="width:100%" height="25" class="bord_table_cell_pages"><strong>Email:</strong> email@client.com</td></tr>
				</table>      
			</td>
		</tr>
	</table>
</page>
Ancien pseudo : lolo

3

Super, j'ai remanié le code HTML en suivant vos conseils et le résultat est maintenant parfait !

Je vous remercie ;-)