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