PDF ドキュメントのページの抽象化を行うのが
Zend_Pdf_Page
クラスです。
PDF ページは既存の PDF から読み込むこともできますし、 新しく作成することもできます。
新しいページを取得するには、直接 Zend_Pdf_Page
オブジェクトを作成するか、Zend_Pdf::newPage()
メソッドをコールします。このメソッドは Zend_Pdf_Page
オブジェクトを返します。Zend_Pdf::newPage()
の場合は、すでにドキュメントにアタッチされているページを作成するという点が異なります。
こうするとそのページを複数の PDF ドキュメントで使いまわすことができませんが、
多少高速になります
[6]。どちらの手法を使用するかはあなたしだいです。
Zend_Pdf::newPage()
メソッドおよび Zend_Pdf_Page
のコンストラクタは、どちらも同じ形式のパラメータを受け取ります。
ページサイズを ($x, $y) 形式のポイント数 (1/72 インチ)
で表したものか、定義済みの定数のうちのいずれかになります。
以下の定数が定義されています。
Zend_Pdf_Page::SIZE_A4
Zend_Pdf_Page::SIZE_A4_LANDSCAPE
Zend_Pdf_Page::SIZE_LETTER
Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE
ドキュメントのページは、Zend_Pdf
クラスの public メンバである
$pages
に保存されます。これは Zend_Pdf_Page
オブジェクトの配列です。これによってページの並び順も定義され、
一般的な配列と同じように操作することができます。
例 24.4. PDF ドキュメントのページの操作
<?php ... // ページの並び順を反転します。 $pdf->pages = array_reverse($pdf->pages); ... // 新しいページを追加します。 $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); // 新しいページを追加します。 $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4); // 指定したページを削除します。 unset($pdf->pages[$id]); ... ?>
[6] これは Zend_Pdf モジュールのバージョン 1.0 の制限事項であり、 将来のバージョンではなくなる予定です。しかし、ドキュメント間で ページを共有するには、アタッチされていないページのほうが 常によい結果となるでしょう。