20.4. ドキュメントのページ
前のページ | 第20章 Zend_Pdf | 次のページ

## 20.4. ドキュメントのページ

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` オブジェクトの配列です。これによってページの並び順も定義され、 一般的な配列と同じように操作することができます。

例 20.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 の制限事項であり、 将来のバージョンではなくなる予定です。しかし、ドキュメント間で ページを共有するには、アタッチされていないページのほうが 常によい結果となるでしょう。

前のページ | 上に戻る | 次のページ
20.3. PDF ドキュメントへの変更内容の保存 | ホーム | 20.5. 描画