2

我正在使用 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 行空间才能保持一致..

4

1 回答 1

0

FPDF does not support good Multicells! FPDF has stopped the support, I think some years ago. Use TCPDF it has alsmost the same functions/calls (>95%). Its is full advanced and has a super documentation. TCPDF supports transactions, Multicell and UTF-8.

于 2012-11-14T14:46:43.123 回答