SQLの窓 イラストAC フリー素材

2014年11月11日

TCPDF で罫線を引く

罫線を引く処理をまとめておけば、それは罫線だけ印刷された印刷物の上にデータを印刷する処理をアプリ側で実装できます(AddPage の後に毎回出力)。そのためには、少なくとも四角形と直線だけ引ける必要があります。

Line メソッド

二つの座標と、罫線の属性を定義した配列で直線を引けます

Line( $x1, $y1, $x2, $y2, array( "width" => 幅, "color" => array( 0, 0, 0 ) ) );
※  array( 0, 0, 0 ) は黒

Rect メソッド

四角形(4つの直線)を作成できます。塗りつぶしもかねているので、以下の書式は塗りつぶしをしない書式です

$line_style = array( "width" => 幅, "color" => array( 0, 0, 0 ) );
Rect( $x, $y, $w, $h, "D", array( "all" => $line_style ) );

4角形なので、4つを別々に定義できますが、all にすると一度に全て定義した事になります

// ***********************************************
// 罫線印字
// ***********************************************
function load_form( $pdf, $cur_position  ) {

	$left = 5;
	$top = 5;
	$width = 200;
	$height = 285;
	$line_height = $GLOBALS['line_height'];

	$line_style = array('width' => 0.1, 'color' => array(0, 0, 0) );
	$body_style = array( 
		'T' => $line_style, 
		'R' => $line_style, 
		'B' => $line_style, 
		'L' => $line_style );
	$pdf->Rect( $left, $top, 200, 285, 'D', $body_style );

	$line_top = $cur_position;
	for( $i = 0; $i < 30; $i++ ) {
		$ly = ($i-1) * $line_height + $line_top;
		$pdf->Line( $left, $ly, $left + $width, $ly );
	}

}


getLastH で現在のフォントでの文字高さを取得
	// ダミーで印字して、現在のフォントでの
	// 行の高さを決定する
	$pdf->SetXY( -100, -100 );
	$pdf->Cell(1, 0, " ", 0, 0, "L");
	$GLOBALS['line_height'] = $pdf->getLastH();



タグ:PHP line Rect
【PHPの最新記事】
posted by at 2014-11-11 16:45 | PHP | このブログの読者になる | 更新情報をチェックする