1

Par défaut avec, html2pdf on a un spacing entre les cellules d'un tableau.

J'essaye de faire un style généraliste qui me permettrait de ne pas forcer l'espacement pour chaque cellule.

Voici le code :

.allBordered,
tr.allBordered td,
table.allBordered tr td,
{
border: solid 1px;
border-spacing: 0px;
border-collapse: collapse;
}

Ensuite j'appelle mon style de la manière suivante :

<table class ="allBordered">
<tr>
<td>
...
</td>
</tr>
</table>

Mais les espaces persistent.

Comment faire alors ?

merci


2

border-spacing n'est pas pris en compte, désolé... (je ne le connaissais meme pas en fait...) par contre, cellpadding et cellspacing marchent très bien wink
Ancien pseudo : lolo

3

Oui mais cellpading et cellspacing sont des propriétés html.
Ce que je veux c'est utiliser du css et rien que du css.

Autre question: c'est moi ou cellpading et cellspacing ont une valeur par défaut supérieure à 0?

merci

4

ben c'est la meme valeur par défaut que sous IE : 1px smile
Ancien pseudo : lolo

5

Et comment je pourrais faire un style pour avoir des bordures "normales" c'est à dire sans cellpadding et cellspacing ?
Note : le style doit être dans un fichier différent.

merci

6

ben sans utiliser cellspacing je ne pense pas que ca soit possible...


j'ai toujours essayé en HTML+CSS mais je n'ai jamais réussit à trouver une solution qui marche sur tous les navigateurs, sans passer par l'utilisation de cellspacing...
Ancien pseudo : lolo

7

Proposition comme propriété css qui marche sous ie et sous firefox:


border-collapse: collapse;


Ca ne peut pas le faire ?

8

le border-collapse marche, non ?
Ancien pseudo : lolo

9

Oui si je mets

style="border-collapse: collapse"

dans ma balise.

Mais pas si je le mets dans un fichier css à part.

merci

10

ah bon ??? ca ce n'est pas normal, je vais vérifier ca !
Ancien pseudo : lolo

11

bon, il y avait bien un problème...

voici la correction à apporter, en attendant la prochaine version d'HTML2PDF :

Fichier : html2pdf.class.php
Méthode : o_TABLE
Il faut modifier le début de la méthode, par :

		function o_TABLE($param, $other = 'table')
		{
			$this->maxH = 0;
			// utilisation du tableau des paramétres des tables
			global $HTML2PDF_TABLEAU; 

			$align_table = isset($param['align']) ? strtolower($param['align']) : 'left';
			if (isset($param['align'])) unset($param['align']);
			if (!in_array($align_table, array('left', 'center', 'right'))) $align_table = 'left';
			
			// lecture et initialisation du style
			$this->style->save();
			$this->style->analyse($other, $param);
			$this->style->setPosition($this->pdf->x, $this->pdf->y);
			$this->style->FontSet();

			// est-on en collapse
			$collapse = false;			
			if ($other=='table')
				$collapse = isset($this->style->value['border']['collapse']) ? $this->style->value['border']['collapse'] : false;

			// si oui il faut adapté les borders
			if ($collapse)
			{
				$param['style']['border'] = 'none';
				$param['cellspacing'] = 0;
				$none = $this->style->readBorder('none');
				$this->style->value['border']['t'] = $none;
				$this->style->value['border']['r'] = $none;
				$this->style->value['border']['b'] = $none;
				$this->style->value['border']['l'] = $none;
			}				
			
			// si on est en mode sub_html : initialisation des dimensions et autres 
Ancien pseudo : lolo

12

Merci beaucoup !

Merci aussi pour cette réactivité, c'est agréable d'avoir un tel suivi.

13

de rien happy
Ancien pseudo : lolo

14

Et si je veux juste relier des cellules entre elles :

<table >
<tr>
<td style="border:solid 1px;border-collapse:collapse;">
première cellule
</td>
<td style="border:solid 1px;border-collapse:collapse;">
deuxième cellule qui n'est pas collée
</td>
<td>
Troisième cellule qui ne doit pas avoir de contour
</td>
</tr>
</table>

On remarquera que le "collapse" ne se fait pas entre les cellules.

Comment faire alors?

15

ah vi en effet, je n'ai prévu le collapse qu'en global pour un tableau !

j'ai peur que tu sois obligé de faire tous les styles à la main...
Ancien pseudo : lolo

16

Comment ça "tous les styles à la main"?
Le rajouter dans la class html2pdf?

J'ai peur de faire des bêtises.

17

nana, jsute mettre pour tous tes TD les styles de border qui vont bien !
Ancien pseudo : lolo

18

Je ne vois pas trop ...
Comment ferais - tu pour mon exemple ?:

<table >
<tr>
<td style="border:solid 1px;border-collapse:collapse;">
première cellule
</td>
<td style="border:solid 1px;border-collapse:collapse;">
deuxième cellule qui n'est pas collée
</td>
<td>
Troisième cellule qui ne doit pas avoir de contour
</td>
</tr>
</table>


merci

19

ebn avec des border-left, et autres sur tous les TD => hyper lourd... ou sinon tu fais une table en collapse dans une table sans collapse
Ancien pseudo : lolo