Zend_Pdf-Pages.xml 5.1 KB

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