Zend_Pdf-Pages.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20872 -->
  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
  31. liefern.
  32. </para>
  33. </footnote>
  34. </para>
  35. <para>
  36. Die <methodname>Zend_Pdf::newPage()</methodname> Methode und der
  37. <classname>Zend_Pdf_Page</classname> Konstruktor benötigen die gleichen Parameter welche
  38. die Größe der Seite spezifizieren. Sie können entweder die Seitengröße ($x, $y) in
  39. Punkten (1/72 Zoll) nehmen oder eine vordefinierte Konstante, die den Seitentyp
  40. repräsentiert:
  41. <itemizedlist>
  42. <listitem><para>Zend_Pdf_Page::SIZE_A4</para></listitem>
  43. <listitem><para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para></listitem>
  44. <listitem><para>Zend_Pdf_Page::SIZE_LETTER</para></listitem>
  45. <listitem><para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para></listitem>
  46. </itemizedlist>
  47. </para>
  48. <para>
  49. Dokumentseiten werden im öffentlichen <varname>$pages</varname> Attribut der
  50. <classname>Zend_Pdf</classname> Klasse abgelegt. Das Attribut enthält ein Array mit
  51. <classname>Zend_Pdf_Page</classname> Objekten und definiert die komplette Instanz und
  52. die Reihenfolge der Seiten. Dieses Array kann wie ein normales <acronym>PHP</acronym>
  53. Array verändert werden:
  54. </para>
  55. <example id="zend.pdf.pages.example-1">
  56. <title>Verwaltung von PDF Dokumentseiten</title>
  57. <programlisting language="php"><![CDATA[
  58. ...
  59. // Umgekehrte Seitenreihenfolge
  60. $pdf->pages = array_reverse($pdf->pages);
  61. ...
  62. // Füge eine neue Seite hinzu
  63. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  64. // Füge eine neue Seite hinzu
  65. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  66. // Entferne eine bestimmte Seite
  67. unset($pdf->pages[$id]);
  68. ...
  69. ]]></programlisting>
  70. </example>
  71. </sect2>
  72. <sect2 id="zend.pdf.pages.cloning">
  73. <title>Klonen von Seiten</title>
  74. <para>
  75. Bestehende <acronym>PDF</acronym> Seiten können durch das Erstellen eines neuen
  76. <classname>Zend_Pdf_Page</classname> Objektes geklont werden indem eine existierende
  77. Seite als Parameter angegeben wird:
  78. </para>
  79. <example id="zend.pdf.pages.example-2">
  80. <title>Klonen bestehender Seiten</title>
  81. <programlisting language="php"><![CDATA[
  82. ...
  83. // Die Template Seite in einer separaten Variable speichern
  84. $template = $pdf->pages[$templatePageIndex];
  85. ...
  86. // Neue Seite hinzufügen
  87. $page1 = new Zend_Pdf_Page($template);
  88. $pdf->pages[] = $page1;
  89. ...
  90. // Andere Seite hinzufügen
  91. $page2 = new Zend_Pdf_Page($template);
  92. $pdf->pages[] = $page2;
  93. ...
  94. // Die Quell Template Seite von den Dokumenten entfernen
  95. unset($pdf->pages[$templatePageIndex]);
  96. ...
  97. ]]></programlisting>
  98. </example>
  99. <para>
  100. Das ist nützlich wenn verschiedene Seite mit Hilfe eines Templates erstellt werden
  101. sollen.
  102. </para>
  103. <caution>
  104. <para>
  105. Wichtig! Geklonte Seiten verwenden die gleichen <acronym>PDF</acronym> Ressourcen
  106. mit der Template Seite. Diese kann also nur innerhalb des gleichen Dokuments als
  107. Template Seite verwendet werden. Modifizierte Dokumente können als neue
  108. abgespeichert werden.
  109. </para>
  110. </caution>
  111. </sect2>
  112. </sect1>