alixe Le 10/06/2010 à 17:35 Bonjour,
J'essaie de générer un PDF à partir de tableaux. Si je mets du code sans tableau, ou juste avec la balise <table>, mon PDF est généré. Dès que je mets des lignes dans le tableau, page blanche. J'avoue ne pas comprendre et ne pas avoir trouvé la solution dans le forum ou dans le wiki.
Exemple de code :
<page>
<h1>Certificat de cession</h1>
<h2>Je, soussigné Patin couffin</h2>
<table>
<tr><td>cccc</td></tr>
</table>
</page>
Sans la ligne <tr>...</tr>, ça fonctionne nickel. Avec plus rien.
Quelqu'un aurait-il une idée ? Je veux bien envoyer une boîte de chocolats à mon sauveur.
Spipu Le 10/06/2010 à 18:32 chez moi ca marche impeccable avec la v4.01...
alixe Le 10/06/2010 à 18:56 Quand je fais un WriteHTML($content,TRUE), je vois bien le contenu de ma page. Mais sans le TRUE, rien du tout. Avez-vous une idée d'où ça peut venir ? Un problème de configuration du serveur ?
Spipu Le 10/06/2010 à 19:09 et apres, vous avez utiliser quels parametres pour la methode output ?
alixe Le 10/06/2010 à 19:25 J'utilise ça :
$html2pdf = new HTML2PDF('P','A4','fr');
$html2pdf->WriteHTML($content);
$html2pdf->Output('sample.pdf');
J'ai réussi à générer un PDF avec un tableau d'une ligne et d'une colonne en spécifiant la taille du <table> et du <td>. Mais dès que je veux rajouter un <td>, plus rien. J'en perds mon latin.
Spipu Le 10/06/2010 à 19:27 alors là, pas normal ?! chez moi tout marche bien...
une erreur d'encodage peut-etre ? si ton fichier est en latin1 et non en utf8, il faut préciser cela (cf les exemples)
alixe Le 10/06/2010 à 19:37 Je génère le contenu en PHP, mais j'utilise utf8_encode sur le contenu avant d'appeler WriteHTML. Je viens de mettre UTF8 en encodage de mes pages pour être sûre, mais ça ne change rien. Et quand je mets le paramètre TRUE dans l'appel à WriteHTML, le contenu s'affiche correctement.
Spipu Le 10/06/2010 à 20:10 as-tu regarder les logs d'erreur de PHP ? est-ce que error-display est à on dans ta config php ? et est-ce que toutes les erreurs sont prises en compte ? (E_ALL)
alixe Le 10/06/2010 à 20:29 J'y comprends plus rien. Tout à l'heure ça ne me retournait pas d'erreur. Maintenant j'ai erreur 7 "le contenu d'une balise td ne rentre pas sur une seule page". Bon, c'est déjà ça, mais ça ne m'aide pas. Voici le contenu d'un exemple basique à deux colonnes :
<page>
<table style="width:100px">
<tr>
<td style="width:50%">Date d'entrée : </td>
<td style="width:50%">02/06/2010</td>
</tr>
</table>
</page>
J'avoue avoir du mal à comprendre quelle balise td est trop grande.
Spipu Le 10/06/2010 à 20:32 cela vient du fait que l'une de tes entrées est incohérente avec une largeur de 50px. (50% de 100px), mais normalement il est censé agrandir automatiquement
alixe Le 10/06/2010 à 20:46 Oui, sauf que si je mets une largeur plus grande, c'est toujours pareil (j'ai testé avec deux colonnes de 50% sur un tableau de 700px et les mêmes données). Bref, j'ai commenté la ligne en question dans la classe, je n'ai vu que ça à faire.
Merci bien pour le coup de main.
Spipu Le 11/06/2010 à 08:52 je viens de remarqué : il ne faut pas utiliser uf8_encode et autres, juste spécifié au constructeur l'encodage utilisé et si c'est de l'unicode
alixe Le 11/06/2010 à 10:09 OK, je vais essayer sans utf8_encode.