Zend_Pdf-Pages.xml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20872 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.pdf.pages">
  5. <title>Trabalhando com Páginas</title>
  6. <sect2 id="zend.pdf.pages.creation">
  7. <title>Criação de Página</title>
  8. <para>
  9. As páginas em um documento <acronym>PDF</acronym> são representadas como instâncias de
  10. <classname>Zend_Pdf_Page</classname> em <classname>Zend_Pdf</classname>.
  11. </para>
  12. <para>
  13. Páginas <acronym>PDF</acronym> podem ser carregadas de um <acronym>PDF</acronym>
  14. existente ou criadas usando a <acronym>API</acronym> de <classname>Zend_Pdf</classname>.
  15. </para>
  16. <para>
  17. Novas páginas podem ser criadas instanciando novos objetos
  18. <classname>Zend_Pdf_Page</classname> diretamente ou chamando o método
  19. <methodname>Zend_Pdf::newPage()</methodname>, que retorna um objeto
  20. <classname>Zend_Pdf_Page</classname>. <methodname>Zend_Pdf::newPage()</methodname> cria
  21. uma página já anexada à um documento. Páginas desanexadas não podem ser usadas com
  22. múltiplos documentos <acronym>PDF</acronym>, mas elas possuem uma performance
  23. relativamente maior.
  24. <footnote>
  25. <para>
  26. Esta é uma limitação da versão atual do Zend Framework. Esta limitação será
  27. eliminada nas versões futuras. Mas páginas desanexadas sempre terão um
  28. desempenho melhor no compartilhamento de páginas entre diversos documentos.
  29. </para>
  30. </footnote>
  31. </para>
  32. <para>
  33. O método <methodname>Zend_Pdf::newPage()</methodname> e o construtor
  34. <classname>Zend_Pdf_Page</classname> recebem os mesmos parâmetros de definição do
  35. tamanho da página. Eles podem receber tanto o tamanho da página ($x, $y) em pontos
  36. (1/72 polegadas) quanto uma constante pré-definida representando um tipo de página:
  37. <itemizedlist>
  38. <listitem><para>Zend_Pdf_Page::SIZE_A4</para></listitem>
  39. <listitem><para>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</para></listitem>
  40. <listitem><para>Zend_Pdf_Page::SIZE_LETTER</para></listitem>
  41. <listitem><para>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</para></listitem>
  42. </itemizedlist>
  43. </para>
  44. <para>
  45. As páginas de um documento são armazenadas no atributo público <varname>$pages</varname>
  46. da classe <classname>Zend_Pdf</classname>. O atributo contém uma matriz de objetos
  47. <classname>Zend_Pdf_Page</classname> e define completamente as instâncias e ordem das
  48. páginas. Esta matriz pode ser manipulada como qualquer outra matriz do
  49. <acronym>PHP</acronym>:
  50. </para>
  51. <example id="zend.pdf.pages.example-1">
  52. <title>Gerenciamento de páginas de documentos PDF</title>
  53. <programlisting language="php"><![CDATA[
  54. ...
  55. // Inverte a ordem das páginas
  56. $pdf->pages = array_reverse($pdf->pages);
  57. ...
  58. // Adiciona nova página
  59. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  60. // Adiciona nova página
  61. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  62. // Remove uma página específica
  63. unset($pdf->pages[$id]);
  64. ...
  65. ]]></programlisting>
  66. </example>
  67. </sect2>
  68. <sect2 id="zend.pdf.pages.cloning">
  69. <title>Clonagem de Página</title>
  70. <para>
  71. Páginas <acronym>PDF</acronym> podem ser clonadas através da criação de um novo objeto
  72. <classname>Zend_Pdf_Page</classname> com uma página já existente como parâmetro:
  73. </para>
  74. <example id="zend.pdf.pages.example-2">
  75. <title>Clonando páginas existentes</title>
  76. <programlisting language="php"><![CDATA[
  77. ...
  78. // Armazena a página template em uma variável separada
  79. $template = $pdf->pages[$templatePageIndex];
  80. ...
  81. // Adiciona nova página
  82. $page1 = new Zend_Pdf_Page($template);
  83. $pdf->pages[] = $page1;
  84. ...
  85. // Adiciona outra página
  86. $page2 = new Zend_Pdf_Page($template);
  87. $pdf->pages[] = $page2;
  88. ...
  89. // Remove a fonte da página template dos documentos
  90. unset($pdf->pages[$templatePageIndex]);
  91. ...
  92. ]]></programlisting>
  93. </example>
  94. <para>
  95. É útil caso você precise criar diversas páginas usando um template.
  96. </para>
  97. <caution>
  98. <para>
  99. Importante! Uma página clonada compartilha alguns recursos do <acronym>PDF</acronym>
  100. com uma página template, então ela só pode ser usada no mesmo documento como uma
  101. página template. Um documento modificado pode ser salvo como um novo documento.
  102. </para>
  103. </caution>
  104. </sect2>
  105. </sect1>
  106. <!--
  107. vim:se ts=4 sw=4 et:
  108. -->