×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今回は「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
コメント