Zend_Pdf-Pages.xml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 17227 -->
  4. <sect1 id="zend.pdf.pages">
  5. <title>ページの操作</title>
  6. <sect2 id="zend.pdf.pages.creation">
  7. <title>ページの作成</title>
  8. <para>
  9. <acronym>PDF</acronym> ドキュメントのページは、<classname>Zend_Pdf</classname> の
  10. <classname>Zend_Pdf_Page</classname> クラスで表されます。
  11. </para>
  12. <para>
  13. <acronym>PDF</acronym> ページは既存の <acronym>PDF</acronym> から読み込むこともできますし、
  14. 新しく作成することもできます。
  15. </para>
  16. <para>
  17. 新しいページを取得するには、直接 <classname>Zend_Pdf_Page</classname>
  18. オブジェクトを作成するか、<methodname>Zend_Pdf::newPage()</methodname>
  19. メソッドをコールします。このメソッドは <classname>Zend_Pdf_Page</classname>
  20. オブジェクトを返します。<methodname>Zend_Pdf::newPage()</methodname>
  21. の場合は、すでにドキュメントにアタッチされているページを作成するという点が異なります。
  22. こうするとそのページを複数の <acronym>PDF</acronym> ドキュメントで使いまわすことができませんが、
  23. 多少高速になります
  24. <footnote>
  25. <para>
  26. これは現在のバージョンの Zend Framework の制限事項であり、
  27. 将来のバージョンではなくなる予定です。
  28. しかし、ドキュメント間でページを共有するには、
  29. アタッチされていないページのほうが常によい結果となるでしょう。
  30. </para>
  31. </footnote>。どちらの手法を使用するかはあなたしだいです。
  32. </para>
  33. <para>
  34. <methodname>Zend_Pdf::newPage()</methodname> メソッドおよび <classname>Zend_Pdf_Page</classname>
  35. のコンストラクタは、どちらも同じ形式のパラメータを受け取ります。
  36. ページサイズを ($x, $y) 形式のポイント数 (1/72 インチ)
  37. で表したものか、定義済みの定数のうちのいずれかになります。
  38. 以下の定数が定義されています。
  39. <itemizedlist>
  40. <listitem>
  41. <para>Zend_Pdf_Page::SIZE_A4</para>
  42. </listitem>
  43. <listitem>
  44. <para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para>
  45. </listitem>
  46. <listitem>
  47. <para>Zend_Pdf_Page::SIZE_LETTER</para>
  48. </listitem>
  49. <listitem>
  50. <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
  51. </listitem>
  52. </itemizedlist>
  53. </para>
  54. <para>
  55. ドキュメントのページは、<classname>Zend_Pdf</classname> クラスの public メンバである
  56. <varname>$pages</varname> に保存されます。これは <classname>Zend_Pdf_Page</classname>
  57. オブジェクトの配列です。これによってページの並び順も定義され、
  58. 一般的な配列と同じように操作することができます。
  59. </para>
  60. <example id="zend.pdf.pages.example-1">
  61. <title>PDF ドキュメントのページの操作</title>
  62. <programlisting language="php"><![CDATA[
  63. ...
  64. // ページの並び順を反転します
  65. $pdf->pages = array_reverse($pdf->pages);
  66. ...
  67. // 新しいページを追加します
  68. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  69. // 新しいページを追加します
  70. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  71. // 指定したページを削除します
  72. unset($pdf->pages[$id]);
  73. ...
  74. ]]></programlisting>
  75. </example>
  76. </sect2>
  77. <sect2 id="zend.pdf.pages.cloning">
  78. <title>ページの複製</title>
  79. <para>
  80. 既存の <acronym>PDF</acronym> ページを複製するには、新しい <classname>Zend_Pdf_Page</classname>
  81. オブジェクトを作成する際に既存のページをパラメータとして指定します。
  82. </para>
  83. <example id="zend.pdf.pages.example-2">
  84. <title>既存のページの複製</title>
  85. <programlisting language="php"><![CDATA[
  86. ...
  87. // テンプレートページを別の変数に格納します
  88. $template = $pdf->pages[$templatePageIndex];
  89. ...
  90. // 新しいページを追加します
  91. $page1 = new Zend_Pdf_Page($template);
  92. $pdf->pages[] = $page1;
  93. ...
  94. // 別のページを追加します
  95. $page2 = new Zend_Pdf_Page($template);
  96. $pdf->pages[] = $page2;
  97. ...
  98. // テンプレートページをドキュメントから削除します
  99. unset($pdf->pages[$templatePageIndex]);
  100. ...
  101. ]]></programlisting>
  102. </example>
  103. <para>
  104. これは、ひとつのテンプレートから複数のページを作成したい場合に便利です。
  105. </para>
  106. <caution>
  107. <para>
  108. 注意! 複製されたページは、テンプレートページと同じ
  109. <acronym>PDF</acronym> リソースを共有します。つまり、
  110. テンプレートページと同じドキュメントしか使用することができません。
  111. ドキュメントを修正したら、新しいページとして保存することができます。
  112. </para>
  113. </caution>
  114. </sect2>
  115. </sect1>
  116. <!--
  117. vim:se ts=4 sw=4 et:
  118. -->