Programmer's Reference Guide

PDF ドキュメントへの変更内容の保存

ページの操作

ページの作成

PDF ドキュメントのページは、Zend_PdfZend_Pdf_Page クラスで表されます。

PDF ページは既存の PDF から読み込むこともできますし、 新しく作成することもできます。

新しいページを取得するには、直接 Zend_Pdf_Page オブジェクトを作成するか、Zend_Pdf::newPage() メソッドをコールします。このメソッドは Zend_Pdf_Page オブジェクトを返します。Zend_Pdf::newPage() の場合は、すでにドキュメントにアタッチされているページを作成するという点が異なります。 こうするとそのページを複数の PDF ドキュメントで使いまわすことができませんが、 多少高速になります [1] 。どちらの手法を使用するかはあなたしだいです。

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

例1 PDF ドキュメントのページの操作

  1. ...
  2. // ページの並び順を反転します
  3. $pdf->pages = array_reverse($pdf->pages);
  4. ...
  5. // 新しいページを追加します
  6. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  7. // 新しいページを追加します
  8. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  9.  
  10. // 指定したページを削除します
  11. unset($pdf->pages[$id]);
  12.  
  13. ...

ページの複製

既存の PDF ページを複製するには、新しい Zend_Pdf_Page オブジェクトを作成する際に既存のページをパラメータとして指定します。

例2 既存のページの複製

  1. ...
  2. // テンプレートページを別の変数に格納します
  3. $template = $pdf->pages[$templatePageIndex];
  4. ...
  5. // 新しいページを追加します
  6. $page1 = new Zend_Pdf_Page($template);
  7. $pdf->pages[] = $page1;
  8. ...
  9.  
  10. // 別のページを追加します
  11. $page2 = new Zend_Pdf_Page($template);
  12. $pdf->pages[] = $page2;
  13. ...
  14.  
  15. // テンプレートページをドキュメントから削除します
  16. unset($pdf->pages[$templatePageIndex]);
  17.  
  18. ...

これは、ひとつのテンプレートから複数のページを作成したい場合に便利です。

警告

注意! 複製されたページは、テンプレートページと同じ PDF リソースを共有します。つまり、 テンプレートページと同じドキュメントしか使用することができません。 ドキュメントを修正したら、新しいページとして保存することができます。

[1] これは現在のバージョンの ZF の制限事項であり、 将来のバージョンではなくなる予定です。 しかし、ドキュメント間でページを共有するには、 アタッチされていないページのほうが常によい結果となるでしょう。

PDF ドキュメントへの変更内容の保存
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual