Re,
Je n'ai pas encore pris le temps de tout contrôler, mais pour moi l'addition des "$marge" (correspondant ici à border+padding) à la largeur fait double emploi...
html2pdf.class.php, ligne
4791
// dimentions de cette case
$w0 = $this->sub_html->maxX + $marge['l'] + $marge['r'];
[...]
// dimensions imposées par le style
$w2 = $this->style->value['width'] + $marge['l'] + $marge['r'];
les border et padding sont déjà ajoutés au style dans la classe
styleHTML.class.php, ligne
969
if ($this->value['width'])
{
if ($this->value['border']['l']['width']) $this->value['width'] += $this->value['border']['l']['width'];
if ($this->value['border']['r']['width']) $this->value['width'] += $this->value['border']['r']['width'];
if ($this->value['padding']['l']) $this->value['width'] += $this->value['padding']['l'];
if ($this->value['padding']['r']) $this->value['width'] += $this->value['padding']['r'];
}
reste un problème lié au calcul de $this->sub_html->maxX
lorsque la largeur de la colonne n'est pas fixée et que le texte est trop large (la largeur de la cellule est calculée automatiquement mais visiblement, le calcul ne prend pas en compte les éventuels border+padding => le tableau déborde)
Je regarderai à l'occasion... pour ma part j'ai donc remplacé:
$w2 = $this->style->value['width'] + $marge['l'] + $marge['r'];
$h2 = $this->style->value['height'] + $marge['t'] + $marge['b'];
par
$w2 = $this->style->value['width'];// + $marge['l'] + $marge['r'];
$h2 = $this->style->value['height'];// + $marge['t'] + $marge['b'];
Ce qui me convient très bien pour l'instant.
Cédric