TCPDFでMulticellの正確な行数を取得する方法
久しぶりにはまりました。
TCPDFを使ってPDFを出力する際に、複数のMulticellの高さを合わせるために、
各セルの行数から最大値を取得したかったのですが、
TCPDFで用意されていたgetNumLines()やgetStringHeight()を使ってセルの行数や高さを取得すると何故か数値が安定せず。
どうやら改行を含むと正しく数値が取得できないようです。
どうしたものかとググって解決策見つけました!
ありがたやありがたや。
参考:TCPDF's getNumLines() is sometimes wrong
TCPDFを使ってPDFを出力する際に、複数のMulticellの高さを合わせるために、
各セルの行数から最大値を取得したかったのですが、
TCPDFで用意されていたgetNumLines()やgetStringHeight()を使ってセルの行数や高さを取得すると何故か数値が安定せず。
どうやら改行を含むと正しく数値が取得できないようです。
どうしたものかとググって解決策見つけました!
ありがたやありがたや。
参考:TCPDF's getNumLines() is sometimes wrong
Multicellの正確な行数を取得する方法
// store current object $pdf->startTransaction(); // get the number of lines $lines = $pdf->MultiCell($w, 0, $txt, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); // restore previous object $pdf = $pdf->rollbackTransaction();
複数のMulticellの高さを揃える方法
$lines = array(); // store current object $pdf->startTransaction(); // get the number of lines $lines[] = $pdf->MultiCell($w, 0, $txt1, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); $lines[] = $pdf->MultiCell($w, 0, $txt2, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); $lines[] = $pdf->MultiCell($w, 0, $txt3, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); $lines[] = $pdf->MultiCell($w, 0, $txt4, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); // restore previous object $pdf = $pdf->rollbackTransaction(); $linecount = max($lines); $h = 5 * $linecount; //高さを指定して実際に出力 $pdf->MultiCell($w, $h, $txt1, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); $pdf->MultiCell($w, $h, $txt2, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); $pdf->MultiCell($w, $h, $txt3, 0, 'L', 0, 0, '', '', true, 0, false,true, 0); $pdf->MultiCell($w, $h, $txt4, 0, 'L', 0, 0, '', '', true, 0, false,true, 0);
RECENT POSTS
SEARCH