Zend_Pdf-Pages.xml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <sect1 id="zend.pdf.pages">
  2. <title>Document pages.</title>
  3. <sect2 id="zend.pdf.pages.creation">
  4. <title>Page creation.</title>
  5. <para>
  6. A abstração da página de um documento PDF é representada pela classe <code>Zend_Pdf_Page</code>.
  7. </para>
  8. <para>
  9. Páginas PDF podem ser carregadas de um PDF existente, ou criadas.
  10. </para>
  11. <para>
  12. Uma nova página pode ser obtida através da criação de um novo objeto <code>Zend_Pdf_Page</code> ou pela chamada
  13. ao método <code>Zend_Pdf::newPage()</code>, que retorna um objeto <code>Zend_Pdf_Page</code>. A diferença é que
  14. o método <code>Zend_Pdf::newPage()</code> cria uma nova página já anexada ao documento. Isso faz com que,
  15. diferentemente das páginas não anexadas, a página criada por este método não possa ser usada em outros documentos
  16. PDF. Entretanto, ela tem uma performance um pouco melhor.
  17. <footnote>
  18. <para>
  19. Esta é uma limitação da versão 1.0 do módulo Zend_Pdf. Esta limitação será eliminada nas versões futuras, mas
  20. páginas não anexadas sempre terão um desempenho melhor no compartilhamento de páginas entre diversos
  21. documentos.
  22. </para>
  23. </footnote>. A escolha sobre qual abordagem utilizar é sua.
  24. </para>
  25. <para>
  26. O método <code>Zend_Pdf::newPage()</code> e o construtor <code>Zend_Pdf_Page</code> recebem o mesmo conjunto de
  27. parâmetros de definição do tamanho da página. Os parâmetros são ou o tamanho da página ($x, $y) em pontos (1/72 inch),
  28. ou uma constante prédefinida, que é tratada como um tipo de página:
  29. <itemizedlist>
  30. <listitem>
  31. <para>Zend_Pdf_Page::SIZE_A4</para>
  32. </listitem>
  33. <listitem>
  34. <para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para>
  35. </listitem>
  36. <listitem>
  37. <para>Zend_Pdf_Page::SIZE_LETTER</para>
  38. </listitem>
  39. <listitem>
  40. <para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para>
  41. </listitem>
  42. </itemizedlist>
  43. </para>
  44. <para>
  45. As páginas de um documento são armazenadas na variável pública <code>$pages</code> da classe <code>Zend_Pdf</code>.
  46. Este atributo é sempre um array de objetos <code>Zend_Pdf_Page</code>. Ele define completamente o conjunto e a ordem
  47. das páginas do documento e pode ser manipulado como qualquer array:
  48. </para>
  49. <example id="zend.pdf.pages.example-1">
  50. <title>Gerenciamento de páginas de documentos PDF.</title>
  51. <programlisting role="php"><![CDATA[<?php
  52. ...
  53. // Reverse page order
  54. $pdf->pages = array_reverse($pdf->pages);
  55. ...
  56. // Add new page
  57. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  58. // Add new page
  59. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  60. // Remove specified page.
  61. unset($pdf->pages[$id]);
  62. ...]]>
  63. </programlisting>
  64. </example>
  65. </sect2>
  66. <sect2 id="zend.pdf.pages.cloning">
  67. <title>Clonde de Páginas.</title>
  68. <para>
  69. Páginas PDF podem ser clonadas através da criação de um novo objeto <code>Zend_Pdf_Page</code> com uma página
  70. já existente como parâmetro:
  71. </para>
  72. <example id="zend.pdf.pages.example-2">
  73. <title>Clonando páginas existentes.</title>
  74. <programlisting role="php"><![CDATA[<?php
  75. ...
  76. // Store template page in a separate variable
  77. $template = $pdf->pages[$templatePageIndex];
  78. ...
  79. // Add new page
  80. $page1 = new Zend_Pdf_Page($template);
  81. $pdf->pages[] = $page1;
  82. ...
  83. // Add another page
  84. $page2 = new Zend_Pdf_Page($template);
  85. $pdf->pages[] = $page2;
  86. ...
  87. // Remove source template page from the documents.
  88. unset($pdf->pages[$templatePageIndex]);
  89. ...]]>
  90. </programlisting>
  91. </example>
  92. <para>
  93. É útil caso você precisa criar diversas páginas usando um template.
  94. </para>
  95. <caution>
  96. <para>
  97. Importante! Uma página clonada compartilha alguns recursos do PDF com a página template, então ela só pode
  98. ser usada no mesmo documento como uma página template. Um documento modificado pode ser salvo como um novo
  99. documento.
  100. </para>
  101. </caution>
  102. </sect2>
  103. </sect1>
  104. <!--
  105. vim:se ts=4 sw=4 et:
  106. -->