1

Bonjour tout le monde,

je sais déjà ce que la plupart d'entre vous va me dire en lisant l'objet du post "Lis les exemples","vérifies ton code html" etc.

Je vous explique mon problème.
J'écris un fichier html à la volée (résultat d'une requête mysql) et je souhaiterai convertir ce fichier en un fichier pdf. Or l'erreur n°4 s'affiche.

Voici mon code php :
require_once('../lib/html2pdf/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4');
$html2pdf->WriteHTML($content);
$html2pdf->Output('../docs/example.pdf');
Ma variable $content contient mon contenu html.

1. j'ai vérifié mon code html par Tidy et sur le site http://validator.w3.org/ et tout est ok.

2. j'ai même compté le nombre de balises ouvrantes et fermantes manuellement (merci la commande wc) et le compte est bon.

3. après avoir lu plusieurs forums, j'ai ajouté l'option true à WriteHTML pour afficher éventuellement l'erreur sur mon navigateur. Cette fois ci, mon contenu html s'affiche correctement sans erreur...

Auriez donc vous une piste pour déceler mon erreur?

Je ne sais pas si j'ai été très claire mais n'hésitez pas à me poser des questions.

Merci d'avance

2

Peux-tu mettre en ligne un exemple de page qui provoque l'erreur ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

3

si c'est une page HTML complète (avec html, head, et autres), c'est normal. comme le montrent les exemples, le code à fournir doit être adapté à HTML2PDF.

après, il y a la méthode getHtmlFromPage (cf http://wiki.spipu.net/doku.php?id=html2pdf:fr:v4:others ) qui permet de préparer le code HTML d'une page pour qu'il convienne mieux à HTML2PDF.

peux-tu mettre exactement l'erreur qui apparait ? car normalement il indique ou se situe l'erreur.
Ancien pseudo : lolo

4

5

Merci à tous pour votre réactivité!

Voici l'erreur que ça m'affiche :
ERREUR n°4
Fichier : /opt/lampp/htdocs/CI_DATABASE/lib/html2pdf/parsingHTML.class.php
Ligne : 99

Code HTML non valide, les balises ne sont pas fermées dans le bon ordre.
Etat :

Array
(
[0] => table
[1] => tr
)


HTML : ... </TR> </TABLE>...


@Spipu : j'ai essayé la méthode getHtmlFromPage mais apparemment ça ne change rien. Toutefois je ne suis pas sûre de l'utiliser comme il se doit. Voici ce que j'ai mis :
$html2pdf->getHtmlFromPage($content);

où $html2pdf est mon objet HTML2PDF et $content mon contenu html.

Quant à la page qui donne une erreur, celle ci est assez longue... Dois je la poster malgré tout? Ou préférez vous en mp?

En tout cas, merci pour votre aide!

6

Je viens de me rendre compte que je n'avais pas répondu à toutes vos questions! gol

Je n'ai pas utilisé de head, html et autres. Voici un exemple de ma page :

<TABLE BORDER="1" cellspacing="1" cellpadding="1">
<TR>
<TH COLSPAN=3>Company</TH>
</TR>
<TR>
<TH ROWSPAN=4>Sheet properties</TH>
<TD CLASS="title">Last update (date)</TD>
<TD>10/12/2009</TD>
</TR>
<TR>
<TD CLASS="title">Last user</TD>
<TD>ADE</TD>
</TR>
<TR>
<TD CLASS="title">status</TD>
<TD>1</TD>
</TR>
<TR>
<TD CLASS="title">frequency</TD>
<TD>Montlhy</TD>
</TR>
</TABLE>


J'espère avoir donné toutes les informations nécessaires pour qu'on puisse résoudre ensemble le problème smile

7

le problème, c'est qu'en HTML, il etait autorisé que des balises comme <b>, <i>, <tr>, ou encore <td> ne soient pas forcement fermées. est-tu sur d'avoir bien fermer toutes les balises proprement ? car l'exemple que tu donnes ci-dessus marche nikel chez moi
Ancien pseudo : lolo

8

A y est trouvé!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Bon je comptais bien les occurences de TD, TH etc mais pas les occurences de <TD>, <TH> etc
En fait il manquait un '>' à un seul endroit!!!

Ah j'ai honte de vous avoir fait chercher pour rien! Je suis désolée!!!

En revanche, je ne comprends pas pourquoi les outils Tidy et autre site de vérification de code n'avaient pas vu cette erreur!

Il me reste la mise en page de mon pdf à faire, je reviendrai vers vous si besoin est car vous êtes super réactifs!

Merci encore!

A bientôt

9

pas de souci smile bon amusement !
Ancien pseudo : lolo