こんにちは。
今回はtFPDF(FPDF)で複雑なチャートの作成のコツをシェアしようと思います。
作成するチャート
作成するチャートは下記になります。
エクセルでいうセルの結合をするのはtFPDFではコツがいります。
ではコードを紹介します。
プログラムコード
次に紹介するのがコードになります。
セルの高さが10というのを頭に入れておいてください。
<?php
require('./../fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 14);
$pdf->Cell(40, 10, 'apple', 'BTLR', 2);
$pdf->Cell(40, 10, 'banana', 'BTLR',2);
$pdf->Cell(40, 10, 'orange', 'BTLR');
$pdf->Ln(-20);
$pdf->Cell(40, 30, '');
$pdf->Cell(40, 30, 'fruits', 'BTLR');
$pdf->Cell(40, 10, 'apple', 'BTLR', 2);
$pdf->Cell(40, 10, 'banana', 'BTLR',2);
$pdf->Cell(40, 10, 'orange', 'BTLR');
$pdf->Cell(0, 10, '', 0,2);
$pdf->Cell(40, -30, 'fuits', 'BTLR');
$pdf->Output();
9~11行目 1列目
$pdf->Cell(40, 10, 'apple', 'BTLR', 2);
Cell関数の一番最後の”2”で、次に続くセルの位置を決めることが出来ます。2は次に続くセルを下方向に設置するというオプションになります。何も記述しなければ、次に続くセルを横方向に設置することになります。
ということで、orangeのセルの最後は何も記述していないので、次に続くセルは横方向になります。
15~17行目 2列目
ここからがコツになります。
$pdf->Ln(-20);
$pdf->Cell(40, 30, '');
$pdf->Cell(40, 30, 'fruits', 'BTLR');
1列目の最後のorangeに続くセルは次に続くセルのオプションを指定していなかったので横方向になりますが、改行をLnを入れているの無効になります。
そこで、改行を-20としています。最後のorangeのセルから高さ方向に-20すると、appleのセルの高さになります(下図の青い点)。
そして、幅40、高さ30の空白のセルを作成(下図のピンクの四角)します。次に続くセルの位置を指定していないので、次のセルは空白セルの横方向に出来ます。そしてfruitsのセルを作ります。
こうすることで、セルの結合のようなデザインを作成することが出来ます。
後は同じ要領で作成すればいいだけです。
まとめ
コツとしては、改行のマイナスと空白セルの活用です。
そうすることで、セルを作成したい位置を任意に決めることが出来るのです。
FPDFではチャート(罫線)を使うことが多いと思いますので、是非、色々な表を作ってみて下さいね。
コメント