システムデザイン開発のA.Oです。
今回は前回に続き、Cellの引数について紹介します 。
前回の記事はこちら
【TCPDF】Cellの背景色塗りつぶし機能
Cellの引数について
Cellは矩形領域(セル)を出力するメソッドです。引数は以下の通りになります。
引数 $width セルの幅 $height セルの高さ $text 出力する文字 $border 左右上下の境界線 $ln 改行 $align 文字の整列指定 $fill セルの塗りつぶし $link 登録するリンク先のURL $stretch 文字の伸縮 $ignore_min_height セルの高さの最小値調整 $calign 指定されたY座標に対するセルの配置 $valign セル内の文字の垂直方向の配置
今回は$lnの設定によるセルの塗りつぶしについて紹介します。
$lnの設定内容について
まずは、簡単に設定内容を説明します。設定するのは$ln(5番目の引数)です。
セルを出力した後の開始位置をセットすることができます。
Lnメソッドと違う点は、改行時の高さの指定ができないところです。改行時の高さは2番目の引数にセットした$heightが適用されます。
全部で3パターンあり、設定する値は0~2の数字をセットします。セットする値によって次のセルの開始位置が変わります。
① $ln→0(または空白) 右へ移動
② $ln→1 改行
③ $ln→2 下へ移動
① $ln→0(または空白)をセットした場合(右へ移動)
$pdf->Cell(50, 10, 'あいうえお', '1', '0', 'L', false, '', '');
$pdf->Cell(50, 10, 'かきくけこ', '1', '0', 'L', false, '', '');
$pdf->Cell(50, 10, 'さしすせそ', '1', '0', 'L', false, '', '');
画像1
- $ln→1をセットした場合(改行)
※③のパターンとの違いをわかりやすくするため、最初コードだけ$lnに0をセットしています。
// 右に移動(0をセット)
$pdf->Cell(50, 10, 'あいうえお', '1', '0', 'L', false, '', '');
// 改行(1をセット)
$pdf->Cell(50, 10, 'かきくけこ', '1', '1', 'L', false, '', '');
// 改行(1をセット)
$pdf->Cell(50, 10, 'さしすせそ', '1', '1', 'L', false, '', '');
// 改行(1をセット)
$pdf->Cell(50, 10, 'たちつてと', '1', '1', 'L', false, '', '');
画像2
- $ln→2をセットした場合(下へ移動)
※②のパターンとの違いをわかりやすくするため、最初コードだけ$lnに0をセットしています。
// 右に移動(0をセット)
$pdf->Cell(50, 10, 'あいうえお', '1', '0', 'L', false, '', '');
// 下に移動(2をセット)
$pdf->Cell(50, 10, 'かきくけこ', '1', '2', 'L', false, '', '');
// 下に移動(2をセット)
$pdf->Cell(50, 10, 'さしすせそ', '1', '2', 'L', false, '', '');
// 下に移動(2をセット)
$pdf->Cell(50, 10, 'たちつてと', '1', '2', 'L', false, '', '');
画像3
①の右に移動するの場合、セルの出力後の次の開始位置は出力したセルの右側になります。
②の場合は、改行の開始位置がsetMarginsやsetLeftMarginメソッドなどで左側の余白を設定した場合、設定した余白の位置で開始します。
③の場合は、出力したセルのすぐ下の位置に開始位置が移動します。
Lnメソッドの設定方法
Ln($height)
引数
$height 高さ
Lnメソッドは改行するときに使用します。
setMargins やsetLeftMarginでセットした値が左の開始位置になり、$heightでセットした高さ分改行されます。
Cellの5番目の引数の$lnに値をセットしない場合でも、Lnメソッドを使用すれば改行することができます。
高さを指定しない場合は、直前に出力したセルの高さが反映されます。
$heightを指定しないパターン
$pdf->Cell(50, 10, 'あいうえお', '1', '0', 'L', false, '', '');
$pdf->ln();
$pdf->Cell(50, 10, 'かきくけこ', '1', '0', 'L', false, '', '');
$pdf->ln();
$pdf->Cell(50, 10, 'さしすせそ', '1', '0', 'L', false, '', '');
画像4
高さを指定するパターン
$pdf->Cell(50, 10, 'あいうえお', '1', '0', 'L', false, '', '');
$pdf->ln(20);
$pdf->Cell(50, 10, 'かきくけこ', '1', '0', 'L', false, '', '');
$pdf->ln(50);
$pdf->Cell(50, 10, 'さしすせそ', '1', '0', 'L', false, '', '');
画像5
画像4の出力結果は画像1と同じになります。
高さを指定する場合は、直前のセルの高さと広げたい分の高さを足した値をセットします。直前のセルの高さよりも小さい値にした場合は、画像6のように重なってしまうため注意が必要です。
$pdf->Cell(50, 10, 'あいうえお', '1', '0', 'L', false, '', '');
$pdf->ln(5);
$pdf->Cell(50, 10, 'かきくけこ', '1', '0', 'L', false, '', '');
$pdf->ln(10);
$pdf->Cell(50, 10, 'さしすせそ', '1', '0', 'L', false, '', '');
画像6
まとめ
$ln(5番目の引数)はセル出力後の開始位置を指定することができるため、改行を多く使う場合にコードの行数を短くできます。
Lnメソッドは次のセルの開始位置を指定することができませんが、改行の高さを指定することができます。
システムデザイン開発は、北海道の地で35年以上の歴史があります。企業向けのシステム設計~開発・構築~保守運用までワンストップサービスを提供するシステム開発会社です。豊富な開発実績と高い技術力を強みとして、北海道から全国へ幅広い分野・業種へトータルにサポートいたします。
システムの導入やご検討、お困りごとがありましたら、お気軽にご相談・お問合せください。