自動改ページの設定(SetAutoPageBreak)

広告

ページ内にテキストなどを出力した時、ページの下端に達するとデフォルトでは自動的に改ページが行われます。この自動改ページが行われるのかどうか、また行う場合にどの位置に達した時に改ページを行うのかを設定することが可能です。自動改ページの設定はFPDFクラスで用意されているSetAutoPageBreakメソッドを使います。

自動改ページモードを有効または無効にします。有効にする場合、2つ目のパラ
メータは「改ページが自動的に発生するためのトリガ」として、ページの下端
からの距離(マージン)を指定します。 

パラメータ:
  auto  自動改ページを行うかどうか
  margin  自動改ページを行う時の下端からのマージン

1番目の引数には自動改ページを行うかどうかをboolean型の値で指定します。「true」であれば自動改ページを行い、「false」であれば自動改ページは行われません。デフォルトは「true」です。

2番目の引数には自動改ページを行う設定になっている場合に、ページの下端からどこまで出力が行われた時に自動改ページを行うかを指定します。単位はMBFPDFクラスのコンストラクタで指定した寸法の種類となります。デフォルトでは2cmとなっています。

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

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

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

$pdf->SetAutoPageBreak(false);
$pdf->Write(10,'サンプル文字列');

$pdf->Output();
?>

サンプルプログラム

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

sample3-1.php

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

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

$pdf->SetAutoPageBreak(false);

$pdf->SetXY(10, 250);
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');

$pdf->Output();
?>

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

自動改ページの設定(SetAutoPageBreak)

今回のサンプルでは自動改ページを無効にしているため、ページの下端に達していても自動改ページは行われません。

では今度は自動改ページを有効にしてマージンを20mmに設定してみます。

sample3-2.php

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

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

$pdf->SetAutoPageBreak(true, 20.0);

$pdf->SetXY(10, 250);
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');
$pdf->Ln();
$pdf->Write(10,'サンプル文字列');

$pdf->Output();
?>

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

自動改ページの設定(SetAutoPageBreak)

今度は自動改ページが有効になっているため、設定したページの下端から20mmの位置より下に出力を行うとページが追加されて新しいページに対して出力が行われます。

( Written by Tatsuo Ikura )