Fix: Using a more precise function to calculate free texts height avoid

having few pixels offset on free texts.
This commit is contained in:
Laurent Destailleur 2012-10-30 11:17:49 +01:00
parent e013fa01a7
commit 9d44590980

View File

@ -658,19 +658,23 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass
$pdf->SetDrawColor(224,224,224); $pdf->SetDrawColor(224,224,224);
// On positionne le debut du bas de page selon nbre de lignes de ce bas de page // On positionne le debut du bas de page selon nbre de lignes de ce bas de page
$nbofline=dol_nboflines_bis($line,0,$outputlangs->charset_output); if ($line) // Free text
//print 'nbofline='.$nbofline; exit; {
//print 'e'.$line.'t'.dol_nboflines($line);exit; $width=20000; $align='L'; // By default, ask a manual break: We use a large value 20000, to not have automatic wrap. This make user understand, he need to add CR on its text.
$marginwithfooter=$marge_basse + ($nbofline*3) + (! empty($line1)?3:0) + (! empty($line2)?3:0) + (! empty($line3)?3:0) + (! empty($line4)?3:0); if (! empty($conf->global->MAIN_USE_AUTOWRAP_ON_FREETEXT)) {
$width=200; $align='C';
}
$freetextheight=$pdf->getStringHeight($width,$line);
}
$marginwithfooter=$marge_basse + $freetextheight + (! empty($line1)?3:0) + (! empty($line2)?3:0) + (! empty($line3)?3:0) + (! empty($line4)?3:0);
$posy=$marginwithfooter+0; $posy=$marginwithfooter+0;
if ($line) // Free text if ($line) // Free text
{ {
$pdf->SetXY($dims['lm'],-$posy); $pdf->SetXY($dims['lm'],-$posy);
$width=20000; $align='L'; // By default, ask a manual break: We use a large value 20000, to not have automatic wrap. This make user understand, he need to add CR on its text.
if (! empty($conf->global->MAIN_USE_AUTOWRAP_ON_FREETEXT)) { $width=200; $align='C'; }
$pdf->MultiCell($width, 3, $line, 0, $align, 0); $pdf->MultiCell($width, 3, $line, 0, $align, 0);
$posy-=($nbofline*3); // 6 of ligne + 3 of MultiCell $posy-=$freetextheight;
} }
$pdf->SetY(-$posy); $pdf->SetY(-$posy);