1

j'ai une balise <table> avec plusieurs balises <td>

en version v3.15 il réussissait à afficher mon tableau sur la page, par contre depuis le passage en v3.16 mon tableau est tronqué (dans le sens de la largeur)

C'est depuis que tu as fais ceci??
"nombreuses corrections sur le calcul des largeurs des éléments table, div, hr, td, th"

2

et m#####, j'ai encore du zappé des calculs ! je vais jamais m'en sortir avec ces tables smile

tu pourrais mettre ici ton code html (si il y a des truc confidentiels, mets des XXXX à la place wink )
Ancien pseudo : lolo

3

Spipu (./2) :
et m#####, j'ai encore du zappé des calculs ! je vais jamais m'en sortir avec ces tables smile

tu pourrais mettre ici ton code html (si il y a des truc confidentiels, mets des XXXX à la place wink )


lol

voici le code:

<table border="0" cellspacing="0" cellpadding="2">
<tbody>
...
</tbody>
</table>

4

heuu dans ton code, y a des input, tbody et autres... ma lib ne les gérant pas, je pense que ce n'est pas le bon code html wink

de plus il faudrait que tu isoles la partie qui déconne, et me fournir le css
Ancien pseudo : lolo

5

Bah si c'est le bon code.

Je sais que tu ne gères pas le <tbody> et le <input> mais cela ne le gène pas.

Je regarde pour te donner le css associé

6

ben si, ca le gène. html2pdf n'autorise pas l'utilisation des balises qu'il ne gére pas et renvoie un msg d'erreur si elles sont presentes
Ancien pseudo : lolo

7

J'ai eu l'impression en faisant plein d'essais cet apres midi que la largeur du tableau dépendant de ses éléments internes

genre, que
<table width=500 cellpadding=0 cellspacing=0> paraissait moins large que
<table width=500 cellpadding=2 cellspacing=2>

Bon, j'ai les yeux qui se croisent à force de tous les essais que j'ai fait ... je reprendrai ça calmement demain. Mais au cas ou ça aide ...
Un peu blonde, parfois

8

tout dépend si les éléments à l'intérieur de ton tableau sont trop grands par rapport à la taille de ton tableau et des espaces entre les cellules...

tu ferais mieux d'utiliser les pourcentages pour les différentes TD

de plus, width=500 n'est absolument pas propre...

il faut mettre style="width: 500px", ou mieux, style="width: 70mm", car dans un PDF, c'est beaucoup plus en mm qu'en px qu'il faut penser wink

Ancien pseudo : lolo

9

J'ai changé l'ensemble de mes td en mettant un % à la place, cela fonctionne.

On peut clôturé le sujet du coup.

Je pense qu'en mettant une largeur fixe, quand la somme dépasse la taille de la page (en largeur) le tableau ne s'affiche pas entièrement.

Par contre en html, il réussi à adapater le tableau.

En contrepartie on peut refaire marcher les balise <h4>

10

Spipu (./6) :
ben si, ca le gène. html2pdf n'autorise pas l'utilisation des balises qu'il ne gére pas et renvoie un msg d'erreur si elles sont presentes


D'ailleurs à ce sujet chez moi j'ai rajouté 2 fonctions "vides"

function o_TBODY($param) { }
function c_TBODY($param) { }

pour faire service minimum, ça ignore le TBODY de manière transparente sans planter.
Un peu blonde, parfois

11

Alors j'ai un peu rejoué avec mes exemples. C'est bien quand on commence à spécifier des largeurs de cellules en mm plutôt qu'en % que ça pose problème.

 
<page  style="font-size: 10px">
<table cellspacing="2" cellpadding="2" style="border: 1px solid black; width: 150mm;">
        <tr>
            <td style="width:10%">toto</td>
            <td style="width:20%">toto</td>
            <td style="width:30%">toto</td>
            <td style="width:40%">toto</td>
        </tr>
</table>
<table cellspacing="0" cellpadding="0" style="border: 1px solid black; width: 150mm;">
        <tr>
            <td style="width:10%">toto</td>
            <td style="width:20%">toto</td>
            <td style="width:30%">toto</td>
            <td style="width:40%">toto</td>
        </tr>
</table>
<table cellspacing="0" cellpadding="0" style="border: 1px solid black; width: 150mm;">
        <tr>
            <td style="border: 1px solid black; width:10%">toto</td>
            <td style="border: 1px solid black; width:20%">toto</td>
            <td style="border: 1px solid black; width:30%">toto</td>
            <td style="border: 1px solid black; width:40%">toto</td>
        </tr>
</table>
<table cellspacing="2" cellpadding="2" style="border: 1px solid black; width: 150mm;">
        <tr>
            <td style="width:10mm">toto</td>
            <td style="width:20mm">toto</td>
            <td style="width:30mm">toto</td>
            <td style="width:40mm">toto</td>
            <td style="width:50mm">toto</td>
        </tr>
</table>
<table cellspacing="0" cellpadding="0" style="border: 1px solid black; width: 150mm;">
        <tr>
            <td style="width:10mm">toto</td>
            <td style="width:20mm">toto</td>
            <td style="width:30mm">toto</td>
            <td style="width:40mm">toto</td>
            <td style="width:50mm">toto</td>
        </tr>
</table>
<table cellspacing="0" cellpadding="0" style="border: 1px solid black; width: 150mm;">
        <tr>
            <td style="border: 1px solid black; width:10mm">toto</td>
            <td style="border: 1px solid black; width:20mm">toto</td>
            <td style="border: 1px solid black; width:30mm">toto</td>
            <td style="border: 1px solid black; width:40mm">toto</td>
            <td style="border: 1px solid black; width:50mm">toto</td>
        </tr>
</table>
<table cellspacing="0" cellpadding="0" style="border: 1px solid black; width: 150mm;">
    <tbody>
        <tr>
            <td style="width: 100%;">table de reference 150mm</td>
        </tr>
    </tbody>
</table>
</page>


qui me donne cela :
tromb Fichier joint : courrier-10.pdf

Donc voila.

Les tables 1 2 3, avec des %, sont nickel dans tous les cas.

La table 4, a la réflexion, est probablement "normalement en erreur" vu que la somme des largeurs + le cellspacing dépasse 150mm (le spacing est-il en plus des largeurs, ou réduit-il la cellule ?)

la table 5, je ne vois pas pourquoi ça dépasse (pas de border, pas de spacing)

La table 6, idem la 4, il faut voir si le pixel de bordure réduit la cellule ou vient s'y rajouter (auquel cas le total ne fait plus 150mm non plus, logique)

Maintenant j'ai vu qu'il y avait pas mal de messages dans ce forum sur le fait que les largeurs de tableaux étaient un peu "chatouilleuses" donc il n'y a peut être rien de neuf sous le soleil...

Bon courage, en tout cas.
Un peu blonde, parfois

12

j'utilise le modèle de boite classique, pas celui de microsoft qui est foireux : http://edu.ca.edu/article258.html

du coup, la largeur totale d'un élément = largeur + paddings + borders...

le 5 dépasse car la propriété cellpadding n'est pas encore prise en compte => il y a un padding automatique de 1px qui est présent, il faudrait mettre padding:0 en plus dans le style des TDs

en fait, si on respecte vraiment les normes CSS, et qu'on calcule correctement les largeurs des cases, ca marche. HTML2PDF ne corrige pas automatiquement les largeurs comme le ferait un navigateur web, ca prendrait trop de ressource (regardez la consommation mémoire, vous comprendrez wink)
Ancien pseudo : lolo