【PHP】TCPDF-3 Multicellメソッドを使用する

Multicellメソッドを使用すると、HTML/cssと似たような形でPDF上のレイアウトができます。

MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml, $autopadding, $maxh, $valign, $fitcell)

1. $w 
セルの横幅を指定します。0を指定すると右端まで伸びます
下の図の右の列は0を指定し、PDFの右端に合わせた例です。

2. $h
セルの最小の縦幅を指定します。高さは必要に応じて自動的に拡張されます。

$pdf->SetFillColor(255, 235, 255);
$pdf->MultiCell(100, 30, '左の列です左の列です左の列です左の列です', '0', 'L', 1, 0, '', '', true, 0);

$pdf->SetFillColor(224, 247, 255);
$pdf->MultiCell(200, 30, '真ん中の列です', '0', 'L', 1, 0, '', '', true, 0);

$pdf->SetFillColor(224, 255, 240);
$pdf->MultiCell(0, 30, '右の列です', '0', 'L', 1, 1, '', '', true, 0);

3. $txt
表示したい文章を入力します。

4. $border
セルの枠線を指定します。
指定方法はこちらをご覧ください。

5. $align
セル内のテキスト揃え位置を指定します。
“L” 左寄せ
“C” 中央寄せ
“R” 右寄せ
“J” justification (default value when :ishtml=false)


Jはあまり日本語では意味がないですね。

6. $fill
デフォルトは0
1:背景色が塗られます。SetFillColor(R, G, B);で指定した背景色になります。
0:背景を透過します

1.$wの図にあるような背景色が設定できます。

7. $ln
“0” 右に移動します(次のセルを右に描画します)
“1” 次の行に移動します (デフォルト)
“2” セルの終点(右下)を開始点にします(私はあまり使いません)

0と1を使って以下のようにセルが移動できます。

$pdf->MultiCell(100, 0, 'left', 1, 'L', 0, 0, '', '', true, 0);
$pdf->MultiCell(200, 0, 'center', 1, 'L', 0, 0, '', '', true, 0);
$pdf->MultiCell(0, 0, 'right', 1, 'L', 0, 1, '', '', true, 0);
$pdf->MultiCell(100, 0, 'left', 1, 'L', 0, 0, '', '', true, 0);

2を設定した場合は下図のようにセルが移動します。

8. $x
デフォルト:”” (現在位置)
X座標を指定して起点にできます。

9. $y
デフォルト:”” (現在位置)
Y座標を指定して起点にできます。

10. $reseth
trueの場合は前のセルの高さをリセットします(デフォルト:true)
trueの場合以下の図のようになります。

試しにfalseを指定してみると、

なんか思い通りに行きませんね。

セル高さの揃え方はこちらでまとめています。

=======================
以下は私はあまり使っていません。引数省略でも良いと思います。

11. $stretch
stretch carachter mode:
0 = disabled
1 = horizontal scaling only if necessary
2 = forced horizontal scaling
3 = character spacing only if necessary
4 = forced character spacing

12. $ishtml
HTML要素として入力したい場合にtrueを指定します。普段はfalseでOK

13. $autopadding
if true, uses internal padding and automatically adjust it to account for line width.

14. $maxh
セルの最大高さを指定します。

maximum height. It should be >= :h and less then remaining space to the bottom of the page, or 0 for disable this feature. This feature works only when :ishtml=false.

15. $valign
垂直方向のテキストの配置
“T” TOP
“M” middle
“B” bottom
$ishtmlがfalseの場合にのみ有効になります

$fitcell
trueの場合はセルの大きさに合わせ、フォントサイズが自動調整されます。