我正在使用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-&gt; GetStringWidth然后将其除以多单元格的宽度(98)然后加1以获得加1以获得额外的行空间在下一个打印之前。
虽然这在大多数情况下起作用,但它确实在我正在创建的一些pdf上存在问题。
我有一个len计算在373.2784,它只给我4行的高度,因为它需要5行空间才能保持一致..
答案 0 :(得分:0)
FPDF不支持良好的多单元! 几年前,我想FPDF已经停止了支持。使用TCPDF它具有几乎相同的功能/调用(> 95%)。它是完全先进的,具有超级文档。 TCPDF支持事务,Multicell和UTF-8。