技術・業務

【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 セル内の文字の垂直方向の配置

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

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

SDDの受託システムとは?

お問い合わせはこちら

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