現在の位置を取得(GetX, GetY)

広告

Writeメソッドは現在の位置から出力が行われますが、現在の位置はFPDFクラスで用意されているGetXメソッドとGetYメソッドを使って調べることが出来ます。

GetX:

カレント(現在の)x座標を返します。

戻り値:
  現在の位置のX座標

GetY:

カレント(現在の)y座標を返します。

戻り値:
  現在の位置のY座標

GetX及びGetYメソッドを使うことで現在の位置のX座標とY座標を取得することが出来ます。なお取得できる座標の単位はMBFPDFクラスのコンストラクタで指定した寸法の種類となります。

実際には次のように記述します。

<?php
require('fpdf/mbfpdf.php');

$pdf = new MBFPDF();
$pdf->AddMBFont(GOTHIC ,'SJIS');
$pdf->AddPage();
$pdf->SetFont(GOTHIC,'',20);
$x = $pdf->GetX();
$y = $pdf->GetY();

$pdf->Write(10,"こんにちは。");
$x = $pdf->GetX();
$y = $pdf->GetY();

$pdf->Output();
?>

現在の位置は最初左上にあります。その位置から文字列が出力されますが、文字列が出力されると現在の位置は移動するため再度現在の位置の座標を取得すると前の値から変わっています。

サンプルプログラム

では簡単なサンプルで試してみます。

sample2-1.php

<?php
require('fpdf/mbfpdf.php');

$pdf=new MBFPDF('P', 'mm', 'A4');
$pdf->AddMBFont(GOTHIC ,'SJIS');
$pdf->AddPage();
$pdf->SetFont(GOTHIC,'',20);

$x = $pdf->GetX();
$y = $pdf->GetY();
$str = "[x=".$x.";y=".$y."]¥n";
$pdf->Write(10,$str);

$x = $pdf->GetX();
$y = $pdf->GetY();
$str = "[x=".$x.";y=".$y."]";
$pdf->Write(10,$str);

$x = $pdf->GetX();
$y = $pdf->GetY();
$str = "[x=".$x.";y=".$y."]";
$pdf->Write(10,$str);

$pdf->Output();
?>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

現在の位置を取得(GetX, GetY)

今回は現在の位置を取得し、その値を文字列として出力しています。最初の文字列では改行しているので、最初の文字列を出力した時点での現在の位置はWriteメソッドの1番目の引数で指定した文字列の高さである10(mm)だけ下に移動しています。そして2番目の文字列では改行をしていないため、出力した文字列の文だけX軸方向に現在の位置が移動しています。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)