1

Bonjour,

J'ai un problème avec la largeur des tableaux.
Si je met 2 tableaux en width 100% avec un nombre de cellules différent, ils ne possèdent pas la même taille.
Je vous donne un exemple :
$content = "<page>";
	$content .= "<table border='1' style='width:100%; border:1px solid black; border-collapse:collapse;'>";
		$content .= "<tr>";
			$content .= "<td width='12%' style=' width:12%;'>";
				$content .= "1";
			$content .= "</td>";
			$content .= "<td width='12%' style=' width:12%;'>";
				$content .= "2";
			$content .= "</td>";
			$content .= "<td width='12%' style=' width:12%;'>";
				$content .= "3";
			$content .= "</td>";
			$content .= "<td width='12%' style=' width:12%; '>";
				$content .= "4";
			$content .= "</td>";
			$content .= "<td width='12%' style=' width:12%; '>";
				$content .= "5";
			$content .= "</td>";
			$content .= "<td width='12%' style=' width:12%; '>";
				$content .= "6";
			$content .= "</td>";
			$content .= "<td width='12%' style=' width:12%; '>";
				$content .= "7";
			$content .= "</td>";
			$content .= "<td width='14%' style=' width:14%; '>";
				$content .= "8";
			$content .= "</td>";
		$content .= "</tr>";
	$content .= "</table>";
	$content .= "<table border='1' style='width:100%; border:1px solid black; border-collapse:collapse;'>";
		$content .= "<tr>";
			$content .= "<td width='50%' style=' width:50%; '>";
				$content .= "1";
			$content .= "</td>";
			$content .= "<td width='50%' style=' width:50%; '>";
				$content .= "2";
			$content .= "</td>";
		$content .= "</tr>";
	$content .= "</table>";
$content .= "</page>";


tromb Résultat donné : exemple_tableaux.pdf
Ici, le second tableau est plus grand que le premier, pourquoi?
La largeur du tableau est-elle fonction du nombre de cellules?

Merci de vos réponses.


Nicolas

2

peut-etre parce que 12+12+12+12+12+12+12+14 = 98 et non 100 ? tongue

par contre, pourquoi est-ce que vous vous compliquez la vie comme ca pour créer $content ??? ceci marche très bien et est moins gourmand en ressource :


$content = "...
...
...";
Ancien pseudo : lolo

3

Oui, c'est vrai que mes calculs sur les largeurs étaient un peu hasardeux, mais le problème est le même si on met 16% (avec un peu moins de différence entre les largeurs des 2 tableaux).

Pour le $content, c'est juste une question d'esthétisme, j'aime bien faire des choses qui ne servent à rien...^^
Non, peut être que c'est parce que les données que je vais chercher pour remplir mes cellules sont dans une base de données et que j'ai fait une sorte de copier / coller puis j'ai allégé le code à la vas-vite pour le poster.

Aller, c'est promis, la prochaine fois je sors la calculatrice pour faire une simple addition avant d'écrire des bêtises...surtout le lundi matin... euh... mardi matin

En tout cas, merci de ta réponse mais malheureusement, ça ne résout toujours pas le problème...snif

4

ok, j'ai trouvé, ca vient de la gestion du border-collapse. ca sera corrigé dans la prochaine version de HTML2PDF.
Ancien pseudo : lolo

5

Bonjour, j'ai également un problème avec la largeur des tableaux
en effet le tableau ne prend pas la largeur que je lui donne.

exemple du code:
$_SESSION['content'] = " <page> <table style='width:100%; border:1px'> <tr><td>Largeur 100% </td></tr> </table> </page>";


Le résultat obtenu est le suivant tromb Fichier joint : ex_pdf.pdf

je ne comprend pas pourquoi j'obtiens ce résultat.Pourriez vous m'aider s'il vous plait ?
je vous remercie d'avance smile
bonne journée

6

il faut préciser la largeur de tous les éléments TABLE? TD, TH, DIV. HTML2PDF ne sait pas prendre d'initiative de ce côté là, ca serait trop gourmand en ressource.

il faut donc rajouter style='width:100%;" au td
Ancien pseudo : lolo

7

Merci infiniment pour votre réponse,ça a marché et ça me donne la bonne largeur grin.

j'avais essayé avec width='100%' dans les <td> et les <tr> mais ça n'a pas marché, donc j'en déduit qu'il faut forcément passer par : style='width:... ; border:...;'


j'ai une autre question mais je sais pas si c'est le bon endroit pour la poser(dsl). En fait comme vous voyez j'ai utilisé une variable de session pour stocker mon HTML. en fait j'ai deux fichiers : un fichier dans le quel j'interroge ma base de données et et je stocke mon html dans la variable de session , et l'autre fichier me permet de générer mon pdf.

parce que lorsque j'ai essayer de tout mettre dans le même fichier, ça fait des erreurs. après avoir fai des recherches j'ai trouvé qu'il faut pas qu'il y aie des echo ou des headers dans le fichier qui permet de générer le pdf.

Donc est ce que la solution avec la variable de session vous parait appropriée ou pas??

Merci beaucoup pour votre aide smile et dsl si j'ai été trop longue.

8

concernant le width=".." la seule valeur autorisée dans les specs de l'HTML sont une valeur numérique, qui sera alors comprise comme des pixels. ( meme si maintenant les navigateurs acceptent malheureusement d'autres types de valeurs)

normalement ce n'est pas necessaire. il faut utiliser les fonctions de bufferisation pour ne pas avoir de pb de sortie. il faut regarger les fonctions ob_start, ob_get_clean, ...
Ancien pseudo : lolo

9

Merci beaucoup pour l'aide précieuse, ça m'a beacoup aidé, j'ai réussi également à utiliser ob_start(),
ob_get_clean().

et merci pour cette librairie génial, et j'espère que j'apprendrai à m'en servir rapidement smile