Zend_Pdf-Pages.xml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <sect1 id="zend.pdf.pages">
  2. <title>Strony dokumentu.</title>
  3. <sect2 id="zend.pdf.pages.creation">
  4. <title>Tworzenie strony.</title>
  5. <para>
  6. Strona dokumentu PDF jest reprezentowana przez klasę <code>Zend_Pdf_Page</code>.
  7. </para>
  8. <para>
  9. Strony PDF mogą być tworzone lub ładowane z istniejącego dokumentu PDF.
  10. </para>
  11. <para>
  12. Nowa strona może być dodana przez utworzenie obiektu <code>Zend_Pdf_Page</code>
  13. lub wywołanie metody <code>Zend_Pdf::newPage()</code>, która zwraca obiekt <code>Zend_Pdf_Page</code>.
  14. Różnicą jest to, że metoda <code>Zend_Pdf::newPage()</code> tworzy stronę dołączoną
  15. do dokumentu. W przeciwieństwie to luźnych stron, niepołączonych z żadnym dokumentem,
  16. nie może ona być użyta z kilkoma dokumentami PDF, ale ma ona trochę lepszą wydajność.
  17. <footnote>
  18. <para>
  19. Jest to limitacja wersji V1.0 modułu Zend_Pdf. Będzie to wyeliminowane
  20. w przyszłych wersjach. Jednak luźne strony zawsze będą dawały lepsze
  21. (bardziej optymalne) wyniki przy używaniu stron w kilku dokumentach.
  22. </para>
  23. </footnote>. Do ciebie należy wybor sposobu, którego użyjesz.
  24. </para>
  25. <para>
  26. Metoda <code>Zend_Pdf::newPage()</code> oraz konstruktor klasy <code>Zend_Pdf_Page</code>
  27. przyjmują ten sam zestaw parametrów. W obydwóch jest to rozmiar strony ($x, $y)
  28. w punktach (1/72 cala), lub definiowana stała, która jest traktowana jako typ
  29. strony:
  30. <itemizedlist>
  31. <listitem>
  32. <para>Zend_Pdf_Page::SIZE_A4</para>
  33. </listitem>
  34. <listitem>
  35. <para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para>
  36. </listitem>
  37. <listitem>
  38. <para>Zend_Pdf_Page::SIZE_LETTER</para>
  39. </listitem>
  40. <listitem>
  41. <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
  42. </listitem>
  43. </itemizedlist>
  44. </para>
  45. <para>
  46. Strony dokumentu są przechowywane w tablicy <code>$pages</code> będącej
  47. publiczną właściwością klasy <code>Zend_Pdf</code>. Jest to tablica obiektów
  48. <code>Zend_Pdf_Page</code>. Kompletnie definiuje ona zbiór oraz kolejność
  49. stron dokumentu, a także możemy nią manipulować jak zwykłą tablicą:
  50. </para>
  51. <example id="zend.pdf.pages.example-1">
  52. <title>Zarządzanie stronami dokumentu PDF.</title>
  53. <programlisting role="php"><![CDATA[
  54. ...
  55. // Odwróć kolejność stron
  56. $pdf->pages = array_reverse($pdf->pages);
  57. ...
  58. // Dodaj nową stronę
  59. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  60. // Dodaj nową stronę
  61. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  62. // Usuń określoną stronę.
  63. unset($pdf->pages[$id]);
  64. ...
  65. ]]>
  66. </programlisting>
  67. </example>
  68. </sect2>
  69. <sect2 id="zend.pdf.pages.cloning">
  70. <title>Klonowanie stron.</title>
  71. <para>
  72. Istniejące strony PDF mogą być klonowane przez tworzenie nowego
  73. obiektu <code>Zend_Pdf_Page</code> z istniejącą stroną w parametrze.
  74. </para>
  75. <example id="zend.pdf.pages.example-2">
  76. <title>Klonowanie istniejącej strony.</title>
  77. <programlisting role="php"><![CDATA[
  78. ...
  79. // Przechowaj szablon strony w osobnej zmiennej
  80. $template = $pdf->pages[$templatePageIndex];
  81. ...
  82. // Dodaj nową stronę
  83. $page1 = new Zend_Pdf_Page($template);
  84. $pdf->pages[] = $page1;
  85. ...
  86. // Dodaj kolejną stronę
  87. $page2 = new Zend_Pdf_Page($template);
  88. $pdf->pages[] = $page2;
  89. ...
  90. // Usuń źródłowy szablon strony z dokumentów
  91. unset($pdf->pages[$templatePageIndex]);
  92. ...
  93. ]]>
  94. </programlisting>
  95. </example>
  96. <para>
  97. Jest to przydatne gdy chcesz utworzyć wiele stron używając jednego
  98. szablonu.
  99. </para>
  100. <caution>
  101. <para>
  102. Ważne! Klonowane strony korzystają z tych samych zasobów co
  103. szablon strony, więc mogą być one użyte tylko w tym samym
  104. dokumencie co szablon. Zmodyfkowany dokument może być zapisany
  105. jako nowy dokument.
  106. </para>
  107. </caution>
  108. </sect2>
  109. </sect1>