1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20872 -->
4 <sect1 id="zend.pdf.pages">
6 <sect2 id="zend.pdf.pages.creation">
9 <acronym>PDF</acronym> ドキュメントのページは、<classname>Zend_Pdf</classname> の
10 <classname>Zend_Pdf_Page</classname> クラスで表されます。
14 <acronym>PDF</acronym> ページは既存の <acronym>PDF</acronym> から読み込むこともできますし、
19 新しいページを取得するには、直接 <classname>Zend_Pdf_Page</classname>
20 オブジェクトを作成するか、<methodname>Zend_Pdf::newPage()</methodname>
21 メソッドをコールします。このメソッドは <classname>Zend_Pdf_Page</classname>
22 オブジェクトを返します。<methodname>Zend_Pdf::newPage()</methodname>
23 の場合は、すでにドキュメントにアタッチされているページを作成するという点が異なります。
24 こうするとそのページを複数の <acronym>PDF</acronym> ドキュメントで使いまわすことができませんが、
28 これは現在のバージョンの Zend Framework の制限事項であり、
30 しかし、ドキュメント間でページを共有するには、
31 アタッチされていないページのほうが常によい結果となるでしょう。
33 </footnote>。どちらの手法を使用するかはあなたしだいです。
37 <methodname>Zend_Pdf::newPage()</methodname> メソッドおよび <classname>Zend_Pdf_Page</classname>
38 のコンストラクタは、どちらも同じ形式のパラメータを受け取ります。
39 ページサイズを ($x, $y) 形式のポイント数 (1/72 インチ)
40 で表したものか、定義済みの定数のうちのいずれかになります。
44 <para>Zend_Pdf_Page::SIZE_A4</para>
47 <para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para>
50 <para>Zend_Pdf_Page::SIZE_LETTER</para>
53 <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
59 ドキュメントのページは、<classname>Zend_Pdf</classname> クラスの public メンバである
60 <varname>$pages</varname> に保存されます。これは <classname>Zend_Pdf_Page</classname>
61 オブジェクトの配列です。これによってページの並び順も定義され、
65 <example id="zend.pdf.pages.example-1">
66 <title>PDF ドキュメントのページの操作</title>
67 <programlisting language="php"><![CDATA[
70 $pdf->pages = array_reverse($pdf->pages);
73 $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
75 $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
78 unset($pdf->pages[$id]);
85 <sect2 id="zend.pdf.pages.cloning">
88 既存の <acronym>PDF</acronym> ページを複製するには、新しい <classname>Zend_Pdf_Page</classname>
89 オブジェクトを作成する際に既存のページをパラメータとして指定します。
92 <example id="zend.pdf.pages.example-2">
93 <title>既存のページの複製</title>
94 <programlisting language="php"><![CDATA[
96 // テンプレートページを別の変数に格納します
97 $template = $pdf->pages[$templatePageIndex];
100 $page1 = new Zend_Pdf_Page($template);
101 $pdf->pages[] = $page1;
105 $page2 = new Zend_Pdf_Page($template);
106 $pdf->pages[] = $page2;
109 // テンプレートページをドキュメントから削除します
110 unset($pdf->pages[$templatePageIndex]);
117 これは、ひとつのテンプレートから複数のページを作成したい場合に便利です。
122 注意! 複製されたページは、テンプレートページと同じ
123 <acronym>PDF</acronym> リソースを共有します。つまり、
124 テンプレートページと同じドキュメントしか使用できません。
125 ドキュメントを修正したら、新しいページとして保存できます。