1

Bonjour,

Lorsque je créé un PDF j'ai souvent besoin d'avoir recours à des tableaux de tableau et je ne comprend pas comment les tailles des sous tableaux sont gérées.
Exemple:
<table cellpadding="0" cellspacing="0" style="border-collapse:collapse; font-size:12px">
<tr>
<td style="width:25%">text1</td>
<td style="width:25%">text1</td>
<td style="width:25%">text1</td>
<td style="width:25%">
<table cellpadding="0" cellspacing="0" style="border-collapse:collapse">
<tr>
<td style="width:33%">text</td>
<td style="width:33%">text</td>
<td style="width:33%">text</td>
</tr>
</table>
</td>
</tr>
</table>

La partie où les width sont à 25% s'affiche correctement mais dès que je précise les width des sous td (33% ) les résultats sont incohérents => les cellules du sous tableau s'agrandissent bien (mais pas de 33% )
mais aussi la cellule toute entière du tableau "parent" en rajoutant un espace blanc.
Lorsque je précise les largeurs en pixels ça semble aller mieux mais je préfèrerais rester en relatif.

Y a t'il un moyen de corriger/contourner le problème ?

2

il faut rajouter des width:100% pour les tables
Ancien pseudo : lolo

3

J'ai beau avoir rajouté des width="100%" et des style="width:100%" dans mes 2 tables (pour être bien sûr)
mais rien n'y change.

4

perso, j'obtiens qui me semble correcte.

j'ai utilisé le code suivant :

<style type="text/css">
    table.main { font-size: 12px; width: 100%; border-collapse: collapse;}
    table.main td { padding: 0; margin: 0; width: 25%  }
    table.main table { width: 100%; border-collapse: collapse; }
    table.main table td { padding: 0; margin: 0; width: 33% }
</style>
<page>
    <table class="main">
        <tr>
            <td>text1</td>
            <td>text1</td>
            <td>text1</td>
            <td>
                <table>
                    <tr>
                        <td>text</td>
                        <td>text</td>
                        <td>text</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    
    <table class="main" border="1" >
        <tr>
            <td>text1</td>
            <td>text1</td>
            <td>text1</td>
            <td>
                <table border="1">
                    <tr>
                        <td>text</td>
                        <td>text</td>
                        <td>text</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</page>
Ancien pseudo : lolo

5

Ok,
En fait il faut respécifier la dimension de la cellule qui contient le tableau !
Il ne va pas de lui même (comme en HTML) regarder si cette valeur est déjà spécifiée dans une celulle de la même colonne.

Merci pour ton aide.

6

tout à fait, sinon, il serati obliger de refaire une passe suplémentaire sur toutes les colonnes, ce qui ralentirait encore plus la génération.

mais vu qu'il ne faut utiliser normalement que les CSS pour etre propre, ca ne pose pas de problème tongue

sinon, on peut utiliser la balise <col>
Ancien pseudo : lolo