技術・業務

【TCPDF】Cellの背景色塗りつぶし機能

システムデザイン開発のA.Oです。
今回は前回に続き、Cellの引数について紹介します。

前回の記事はこちら
【TCPDF】Cellのストレッチモードの活用方法

Cellの引数について

Cellは矩形領域(セル)を出力するメソッドです。引数は以下の通りになります。

引数
$width セルの幅
$height セルの高さ
$text 出力する文字
$border 左右上下の境界線
$ln 改行
$align 文字の整列指定
$fill セルの塗りつぶし
$link 登録するリンク先のURL
$stretch 文字の伸縮
$ignore_min_height セルの高さの最小値調整
$calign 指定されたY座標に対するセルの配置
$valign セル内の文字の垂直方向の配置

今回は$fillの設定によるセルの塗りつぶしについて紹介します。

$fillの設定内容について

まずは、簡単に設定内容を説明します。設定するのは$fill(7番目の引数)です。

$fill→false(または0,空白)  塗りつぶししない。(透明)
$fill→true(または1)  塗りつぶし。

$fillは塗りつぶすか透明のままかの二つしかありません。基本的にはsetFillColorメソッドとセットで使用します。
そのため、setFillColorメソッドで色を指定しないと黒で塗りつぶされます (setFillColorの初期値が黒のため) 。

setFillColor未設定時

$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');      // 塗りつぶし有
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', false, '', '');     // 塗りつぶし無

画像1

画像1では塗りつぶし無の方が白くなっていますが、$fillをfalseに設定すると透明色になるため、背景色が透けて表示されます。


画像2

setFillColorメソッドの設定方法

setFillColorメソッドの引数

setFillColor($color1, $color2, $color3, $color4)

$color1~4は0~255の数字を指定して色を作ります。

①$color1のみ使用する場合は、グレーの濃度を設定します。
②$color1~3を使用する場合はRGBを設定します。
③$color1~4を使用する場合はCMYKを設定します。

$color1→単独で使用する場合はグレーの濃度を設定します。数字が255に近くなるほど白くなります。RGBの場合はR(赤)を設定します。CMYKの場合はC(シアン)を設定します。
$color2→RGBの場合はG(緑)を設定します。CMYKの場合はM(マゼンタ)を設定します。
$color3→RGBの場合はB(青)を設定します。CMYKの場合はY(黄色)を設定します。
$color4→CMYKの場合はK(黒)を設定します。

①$color1のみを設定の場合(グレー濃度)

$pdf->SetFillColor(0);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');         // 0に設定
$pdf->SetFillColor(50);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');         // 50に設定
$pdf->SetFillColor(100);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');         // 100に設定
$pdf->SetFillColor(150);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');         // 150に設定
$pdf->SetFillColor(200);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');         // 200に設定
$pdf->SetFillColor(255);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');         // 255に設定

画像3



②$color1~3を設定する場合(RGB)

$pdf->SetFillColor(200,200,0);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');

画像4


③$color1~4を設定する場合(CMYK)

$pdf->SetFillColor(200,200,0,10);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');

画像5

setFillColorメソッドで設定した色は改ページを行った場合でもそのまま引き継がれます。
また、テキストの色を変えるときはsetTextColorメソッドを使用しますが、色の設定方法は上記で記述したやり方と同じでグレー濃度やRGB、CMYKで設定できます。Cellの設定関係なしにテキストのカラーが反映されます。

$pdf->SetFillColor(180);
$pdf->SetTextColor(80,20,150);
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', true, '', '');      // 塗りつぶし有
$pdf->Cell(50, 10, 'あいうえお', '1', '1', 'L', false, '', '');     // 塗りつぶし無

画像6

まとめ

$fill(7番目の引数)を使用する場合は、setFillColorメソッドとセットで使うと様々な色の背景色を出力することができます。


システムデザイン開発は、北海道の地で35年以上の歴史があります。企業向けのシステム設計~開発・構築~保守運用までワンストップサービスを提供するシステム開発会社です。豊富な開発実績と高い技術力を強みとして、北海道から全国へ幅広い分野・業種へトータルにサポートいたします。

システムの導入やご検討、お困りごとがありましたら、お気軽にご相談・お問合せください。

SDDの受託システムとは?

お問い合わせはこちら

タイトルとURLをコピーしました