我正在使用 FPDF 生成显示产品详细信息的 pdf,显然这将具有可变的文本长度,从而导致单元格的高度不同。
在这种情况下,我正在检查产品包含多少香水,然后显示每种香水的名称和描述,同时跟踪应该占用多少行。
for ($i = 0;$i <= $countfrag; $i++) {
$pdf->SetXY(102, $next);
$fragname = $ranges->getFragName($fragcount[$i]);
$fragdesc = $ranges->getFragDesc($fragcount[$i]);
$pdf->SetFont('Arial','B',10);
$pdf->MultiCell(88,4, $fragname, 0, L);
$next = $next + 4;
$pdf->SetFont('Gill','',11);
$pdf->SetXY(102, $next);
$pdf->MultiCell(98,4, $fragdesc, 0, L);
$len = $pdf->GetStringWidth($fragdesc);
$remain = ceil($len / 98) + 1;
$extra = $remain * 4;
$next = $next + $extra;
}
如您所见,我使用 $pdf->GetStringWidth 获取字符串的宽度,然后将其除以多单元格的宽度(98),然后加 1 得到加 1 以在下一个之前获得额外的行空间印刷。
虽然这在大多数情况下都有效,但我正在创建的一些 pdf 文件确实存在问题。
我有一个 len 在 373.2784 处计算,它只给我 4 行的高度,因为它需要 5 行空间才能保持一致..