Zend_Pdf-Pages.xml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.pdf.pages">
  5. <title>Arbeiten mit Seiten</title>
  6. <sect2 id="zend.pdf.pages.creation">
  7. <title>Erstellen von Seiten</title>
  8. <para>
  9. Die Seiten in einem PDF Dokument werden durch <classname>Zend_Pdf_Page</classname>
  10. Instanzen in <classname>Zend_Pdf</classname> abgebildet.
  11. </para>
  12. <para>
  13. PDF Seiten werden entweder aus einem vorhandenen PDF gelesen oder erstellt indem die API
  14. von <classname>Zend_Pdf</classname> verwendet wird.
  15. </para>
  16. <para>
  17. Neue Seiten können durch die Instanzierung neuer <classname>Zend_Pdf_Page</classname>
  18. Objekte erstellt werden, entweder direkt oder durch den Aufruf der
  19. <classname>Zend_Pdf::newPage()</classname> Methode, die ein
  20. <classname>Zend_Pdf_Page</classname> Objekt zurückgibt.
  21. <classname>Zend_Pdf::newPage()</classname> erstellt eine Seite die bereits an ein
  22. Dokument angehängt ist. Ungebundene Seiten können nicht mit verschiedenen PDF Dokumenten
  23. verwendet werden, sind aber etwas schneller.
  24. <footnote>
  25. <para>
  26. Dies ist eine Einschränkung der aktuellen ZF Version. Sie wird in
  27. zukünftigen Versionen beseitigt werden. Aber ungebundene Seiten werden immer ein
  28. besseres (also optimaleres) Ergebnis für gemeinsame Benutzung in Dokumenten liefern.
  29. </para>
  30. </footnote>
  31. </para>
  32. <para>
  33. Die <classname>Zend_Pdf::newPage()</classname> Methode und der
  34. <classname>Zend_Pdf_Page</classname> Konstruktor benötigen die gleichen Parameter welche
  35. die Größe der Seite spezifizieren. Sie können entweder die Seitengröße ($x, $y) in
  36. Punkten (1/72 Zoll) nehmen oder eine vordefinierte Konstante, die den Seitentyp
  37. repräsentiert:
  38. <itemizedlist>
  39. <listitem>
  40. <para>Zend_Pdf_Page::SIZE_A4</para>
  41. </listitem>
  42. <listitem>
  43. <para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para>
  44. </listitem>
  45. <listitem>
  46. <para>Zend_Pdf_Page::SIZE_LETTER</para>
  47. </listitem>
  48. <listitem>
  49. <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
  50. </listitem>
  51. </itemizedlist>
  52. </para>
  53. <para>
  54. Dokumentseiten werden im öffentlichen <code>$pages</code> Attribut der
  55. <classname>Zend_Pdf</classname> Klasse abgelegt. Das Attribut enthält ein Array mit
  56. <classname>Zend_Pdf_Page</classname> Objekten und definiert die komplette Instanz und
  57. die Reihenfolge der Seiten. Dieses Array kann wie ein normales Array verändert werden:
  58. </para>
  59. <example id="zend.pdf.pages.example-1">
  60. <title>Verwaltung von PDF Dokumentseiten</title>
  61. <programlisting language="php"><![CDATA[
  62. ...
  63. // Umgekehrte Seitenreihenfolge
  64. $pdf->pages = array_reverse($pdf->pages);
  65. ...
  66. // Füge eine neue Seite hinzu
  67. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  68. // Füge eine neue Seite hinzu
  69. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  70. // Entferne eine bestimmte Seite
  71. unset($pdf->pages[$id]);
  72. ...
  73. ]]></programlisting>
  74. </example>
  75. </sect2>
  76. <sect2 id="zend.pdf.pages.cloning">
  77. <title>Klonen von Seiten</title>
  78. <para>
  79. Bestehende PDF Seiten können durch das Erstellen eines neuen
  80. <classname>Zend_Pdf_Page</classname> Objektes geklont werden indem eine existierende
  81. Seite als Parameter angegeben wird:
  82. </para>
  83. <example id="zend.pdf.pages.example-2">
  84. <title>Klonen bestehender Seiten</title>
  85. <programlisting language="php"><![CDATA[
  86. ...
  87. // Die Template Seite in einer separaten Variable speichern
  88. $template = $pdf->pages[$templatePageIndex];
  89. ...
  90. // Neue Seite hinzufügen
  91. $page1 = new Zend_Pdf_Page($template);
  92. $pdf->pages[] = $page1;
  93. ...
  94. // Andere Seite hinzufügen
  95. $page2 = new Zend_Pdf_Page($template);
  96. $pdf->pages[] = $page2;
  97. ...
  98. // Die Quell Template Seite von den Dokumenten entfernen
  99. unset($pdf->pages[$templatePageIndex]);
  100. ...
  101. ]]></programlisting>
  102. </example>
  103. <para>
  104. Das ist nützlich wenn verschiedene Seite mit Hilfe eines Templates erstellt werden
  105. sollen.
  106. </para>
  107. <caution>
  108. <para>
  109. Wichtig! Geklonte Seiten verwenden die gleichen PDF Ressourcen mit der Template
  110. Seite. Diese kann also nur innerhalb des gleichen Dokuments als Template Seite
  111. verwendet werden. Modifizierte Dokumente können als neue abgespeichert werden.
  112. </para>
  113. </caution>
  114. </sect2>
  115. </sect1>
  116. <!--
  117. vim:se ts=4 sw=4 et:
  118. -->