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行の高さしか与えていません.

4

1 に答える 1

0

FPDF は適切なマルチセルをサポートしていません! FPDF はサポートを終了しました。数年前だと思います。ほぼ同じ関数/呼び出し (>95%) を持つ TCPDF を使用します。それは完全に高度で、優れたドキュメントがあります。TCPDF は、トランザクション、マルチセル、および UTF-8 をサポートしています。

于 2012-11-14T14:46:43.123 に答える