private function labeledText(ImprovedFPDF $pdf, $label, $text, $maxW, $ln = 0, $multLines = false) { $pdf->saveState(); $pdf->SetFont('', ''); $wLabel = $pdf->GetStringWidthXd($label . ' '); $pdf->SetFont('', 'B'); $xLabel = $pdf->x; $pdf->CellXp($wLabel, $label); $pdf->SetFont('', ''); $maxTextW = $maxW - $wLabel; if ($multLines) { if (is_float($multLines) || is_int($multLines)) { $pdf->setLineHeightPadding($multLines); } $x = $pdf->x - $wLabel; $pdf->MultiCellXp($maxTextW, $text); if ($ln === 0) { $pdf->SetX($x + $maxTextW); } else { if ($ln == 1) { $pdf->SetX($pdf->lMargin); } else { if ($ln == 2) { $pdf->SetX($x); } } } } else { while ($text && $maxTextW < $pdf->GetStringWidth($text)) { $text = substr($text, 0, strlen($text) - 1); } $pdf->CellXp($maxTextW, $text, '', $ln); if ($ln == 2) { $pdf->x -= $wLabel; } } $lastX = $pdf->x; $lastY = $pdf->y; $pdf->restoreLastState(); if ($ln === 0) { $pdf->SetX($xLabel + $maxW); } else { if ($ln === 1) { $pdf->SetXY($lastX, $lastY); } else { if ($ln === 2) { $pdf->SetXY($lastX, $lastY); } } } }