Writeメソッドによるテキスト出力

広告

PDFドキュメントへテキストを出力する方法はいくつかありますが、まずはFPDFクラスで用意されているWriteメソッドについて確認します。

このメンバ関数は文章を現在の位置から出力します。右マージン、または改行
文字列(¥n)があった場合、改行が発生し、続きの文章は左マージンから続けて
出力されます。メンバ関数が終了すると、文章の最後の位置にカレント(現在
の)位置が置かれます。

パラメータ:
  h  行の高さ
  txt  出力する文章
  link  URLまたはAddLink()メンバ関数によって返された識別子

1番目の引数には行の高さを指定します。行の高さの単位はMBFPDFクラスのコンストラクタで指定した寸法の種類となります。例えば寸法n種類に「mm」が指定してあった時に高さを「10」を指定すると「10mm」となります。

2番目の引数には出力する文字列を指定します。3番目の引数は省略可能でリンクを貼る場合に使用します。リンクについては別のページで詳しく確認します。

PDFドキュメントでは現在の位置という情報を保持しており、Writeメソッドを実行すると現在の位置から文字列を出力します。出力が終わると現在の位置は出力した文字列の最後に設定されます。よって続けてWriteメソッドを実行することで文字列は連続して出力されます。

なお改行せずに長い文章を出力した場合、右端にくると自動的に改行が行われます。ページ内でどこからどこまで文字列を出力できるのかは左マージンと右マージンの設定次第です。

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

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

$pdf = new MBFPDF();
$pdf->AddMBFont(GOTHIC ,'SJIS');
$pdf->AddPage();
$pdf->SetFont(GOTHIC,'',20);
$pdf->Write(10,"こんにちは。");
$pdf->Write(10,"お元気ですか。");

$pdf->Output();
?>

この場合は「こんにちは。」と「お元気ですか。」が続けて出力されます。

サンプルプログラム

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

sample1-1.php

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

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

$str = "非常に長い文章を出力すると右端で自動的に改行が行われます。";
$str = $str."どこで改行されるのかはマージンの設定によります。¥n";

$pdf->Write(10,$str);
$pdf->Write(10,'こんにちは。');
$pdf->Write(10,'お元気ですか?');

$pdf->Output();
?>

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

Writeメソッドによるテキスト出力

( Written by Tatsuo Ikura )