今回は「Cellメソッド」を使って、配列データをテーブルの表として枠線と背景色を塗りながら、四角い領域に表示する方法について説明します。 
「Cellメソッド」の説明は以下のページで行っていますので、詳しくはそちらを参照して下さい。 
⇒PHP PDF出力の方法について・矩形領域への文字列出力(Cellメソッド)
ここであらためて、Cell メソッドの引数について説明を記します。
// Cellメソッド public function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') // $w : 矩形領域の幅、0であれば、右マージンまで自動的に拡張される。 // $h : 矩形領域の縦幅(デフォルト:0) // $txt : 表示文字列(デフォルト:"") // $border : 境界線表示(0:枠無し,1:枠有 または "LRTB"の文字列で「左右上下」を指定) // $ln : 出力後のカーソルの移動方法を指定 // [0]: 右へ移動(既定) // [1]: 次の行へ移動 // [2]: 下へ移動 // $align : テキストの整列を指定 // [L] or 空文字: 左揃え(既定) // [C]: 中央揃え // [R]: 右揃え // [J]: 両端揃え // $fill : 矩形領域の塗つぶし指定 // [false] : 透明(既定) // [true] : 塗つぶす // $link : 登録するリンク先のURL // $stretch: テキストの伸縮(ストレッチ)モード: // [0] : なし // [1] : 必要に応じて水平伸縮 // [2] : 水平伸縮 // [3] : 必要に応じてスペース埋め // [4] : スペース埋め // $ignore_min_height:「true」矩形領域の高さの最小値調整をしない // $calign : 指定されたY座標に対するセルの配置 // [T] : cell top // [C] : center // [B] : cell bottom // [A] : font top // [L] : font baseline // [D] : font bottom // $valign : セルの中のテキストの垂直方向の配置 // [T] : top // [M] : middle // [B] : bottom
今回はテーブルとして見える様に、境界線指定の「$border」と矩形領域の塗つぶし指定の「$fill」引数を指定します。
それでは Cell メソッドを使用したデータテーブルの表示の簡単な例を以下に記します。 
■Cell メソッドを使用したデータテーブルの表示
setLineStyle メソッドのスタイル指定連想配列は、ほぼ以下の様にしています。
<?php
require_once('../tcpdf/tcpdf.php');
// クラス生成
$pdf = new TCPDF();
// デフォルトで用意されている日本語フォント[小塚ゴシックPro M]
$strFont = "kozgopromedium";
// ヘッダ・フッタ出力設定(特にいらないが)
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// 本文の日本語フォント[小塚ゴシックPro M]
$pdf->SetFont($strFont, "", 10);
// 新しいpdfページを追加
$pdf->AddPage();
$pdf->Write(0, '[Cell]関数でのテーブル表示テスト', '', false, '', true);
// 各色指定による[Cell]関数でのテーブル表示
$arrTableData = [
    ['A001', 'aaaa'  , 'a002', 'AAAAA'   ] ,
    ['B001', 'bbbb'  , 'b002', 'BBBBBBBB'] ,
    ['C001', 'cccccc', 'c002', 'CCCCCC'  ] ,
    ['D001', 'dddddd', 'd002', 'DDDDDDD' ] ,
];
// 各データのセル幅
$arrWidth = [40, 35, 40, 45];
// 各データの高さ
$intHeight = 6;
// 塗潰し色設定 : [Cell()]のfill指定に適用される
$pdf->setFillColor(224, 235, 255);
// テキスト色設定
$pdf->setTextColor(0);
// 線色設定 : [Cell()]のborder指定に適用される
$pdf->setDrawColor(0, 0, 255);
// 線の幅設定 : [Cell()]のborder指定に適用される
$pdf->setLineWidth(0.3);
// 現在のX座標取得
$x = $pdf->GetX();
// 各データのセル幅の合計値でセルの[Top]の枠線を引く(高さは「0」指定)
$pdf->Cell(array_sum($arrWidth), 0, '', 'T', 0);    // カーソルは右端指定
// カーソルのX座標指定
$pdf->SetX($x);
// 塗潰し指定(最初は塗潰し無し)
$fill = 0;
// データ配列からテーブル表示
foreach($arrTableData as $data) {
    // 各カラムは左右の枠線描画指定
	$pdf->Cell($arrWidth[0], $intHeight, $data[0], 'LR', 0, 'L', $fill);
	$pdf->Cell($arrWidth[1], $intHeight, $data[1], 'LR', 0, 'L', $fill);
	$pdf->Cell($arrWidth[2], $intHeight, $data[2], 'LR', 0, 'R', $fill);
	$pdf->Cell($arrWidth[3], $intHeight, $data[3], 'LR', 0, 'R', $fill);
	$pdf->Ln();
    // 塗潰し指定反転
	$fill = !$fill;
}
// 各データのセル幅の合計値でセルの[Top]の枠線を引く(高さは「0」指定)
$pdf->Cell(array_sum($arrWidth), 0, '', 'T');
// pdf表示設定
$pdf->Output('pdf-cells-color-1.pdf', 'I');
?>
これの実行結果は以下の通りです。
各データの縦の枠線は Cell メソッドの枠指定 'LR' で左右の枠を指定します。 また、各データの塗潰しの指定は true と false が交互に指定される様にしています。 
テーブルの上下の横線はテーブル全部の横幅の合計数に対して Cell メソッドで高さ「0」の枠のみを描画させています。 
なお、塗潰し色・テキスト色・線の色は以下のメソッドで指定したものが適用されます。
- 塗潰し色設定 :setFillColor
- テキスト色設定:setTextColor
- 線色設定 :setDrawColor
関連する記事
⇒PHP PDFファイル出力の方法について(TCPDF)⇒PHP TCPDF PDFのワークシートの処理について
⇒PHP TCPDF PDFのワークシートのセルへのアクセスについて
⇒PHP TCPDF PDFのワークシートのセルへのアクセスについて(行・列指定)
⇒PHP TCPDF PDFのワークシートのセルへ漢字(全角文字)の設定について
⇒PHP TCPDF PDFのワークシートの紙の大きさやページ設定について
PR
 
  
コメント