Zend_Pdf-Pages.xml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20854 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.pdf.pages">
  5. <title>Trabajando con Páginas</title>
  6. <sect2 id="zend.pdf.pages.creation">
  7. <title>Creación de Páginas</title>
  8. <para>
  9. Las páginas en un documento
  10. <acronym>PDF</acronym>
  11. están representadas como
  12. instancias
  13. <classname>Zend_Pdf_Page</classname>
  14. en
  15. <classname>Zend_Pdf</classname>
  16. .
  17. </para>
  18. <para>
  19. Las páginas
  20. <acronym>PDF</acronym>
  21. o bien son cargadas desde una
  22. <acronym>PDF</acronym>
  23. ya existente o
  24. creadas usando la
  25. <acronym>API</acronym>
  26. <classname>Zend_Pdf</classname>
  27. .
  28. </para>
  29. <para>
  30. Se pueden crear nuevas páginas instanciando directamente al
  31. objeto
  32. <classname>Zend_Pdf_Page</classname>
  33. o llamando al método
  34. <methodname>Zend_Pdf::newPage()</methodname>
  35. , que devuelve un
  36. objeto
  37. <classname>Zend_Pdf_Page</classname>
  38. .
  39. <methodname>Zend_Pdf::newPage()</methodname>
  40. crea una página que
  41. ya está agregada a un documento. Las páginas no agregadas no pueden
  42. ser utilizadas con múltiples documentos
  43. <acronym>PDF</acronym>
  44. , pero son algo más
  45. eficientes.
  46. <footnote>
  47. <para>Es una limitación de la versión actual de Zend Framework. Será
  48. eliminada en
  49. futuras versiones. Pero las páginas no
  50. agregadas siempre dan mejor resultado (más
  51. óptimo) para
  52. compartir páginas entre los documentos.</para>
  53. </footnote>
  54. </para>
  55. <para>
  56. El método
  57. <methodname>Zend_Pdf::newPage()</methodname>
  58. y el
  59. constructor
  60. <classname>Zend_Pdf_Page</classname>
  61. toman los mismos
  62. parámetros que especifican el tamaño de la página. Pueden tomar el
  63. tamaño de la página ($x, $y) en puntos (1/72 pulgadas) o una
  64. constante predefinida
  65. representando un tipo de página:
  66. <itemizedlist>
  67. <listitem>
  68. <para>Zend_Pdf_Page::SIZE_A4</para>
  69. </listitem>
  70. <listitem>
  71. <para><constant>Zend_Pdf_Page::SIZE_A4_LANDSCAPE</constant></para>
  72. </listitem>
  73. <listitem>
  74. <para><constant>Zend_Pdf_Page::SIZE_LETTER</constant></para>
  75. </listitem>
  76. <listitem>
  77. <para><constant>Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE</constant></para>
  78. </listitem>
  79. </itemizedlist>
  80. </para>
  81. <para>
  82. Las páginas del documento se almacenados en el atributo público
  83. <varname>$pages</varname>
  84. de la clase
  85. <classname>Zend_Pdf</classname>
  86. . El atributo posee un array de
  87. objetos
  88. <classname>Zend_Pdf_Page</classname>
  89. y define completamente
  90. las instancias y el orden de las páginas. Este array puede
  91. manipularse como cualquie otro array
  92. <acronym>PHP</acronym>
  93. :
  94. </para>
  95. <example id="zend.pdf.pages.example-1">
  96. <title>Administración de Páginas de un Documento PDF</title>
  97. <programlisting language="php"><![CDATA[
  98. ...
  99. // Invertir el orden de las páginas.
  100. $pdf->pages = array_reverse($pdf->pages);
  101. ...
  102. // Agregar una nueva página.
  103. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
  104. // Agregar una nueva página.
  105. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
  106. // Eliminar la página especificada.
  107. unset($pdf->pages[$id]);
  108. ...
  109. ]]></programlisting>
  110. </example>
  111. </sect2>
  112. <sect2 id="zend.pdf.pages.cloning">
  113. <title>Clonado de Páginas</title>
  114. <para>
  115. La página
  116. <acronym>PDF</acronym>
  117. existente puede ser clonada creando un nuevo objeto
  118. <classname>Zend_Pdf_Page</classname>
  119. con una página existente
  120. como parámetro:
  121. </para>
  122. <example id="zend.pdf.pages.example-2">
  123. <title>Clonando una Página Existente</title>
  124. <programlisting language="php"><![CDATA[
  125. ...
  126. // Almacenar la página plantilla en una variable
  127. $template = $pdf->pages[$templatePageIndex];
  128. ...
  129. // Agregar una nueva página.
  130. $page1 = new Zend_Pdf_Page($template);
  131. $pdf->pages[] = $page1;
  132. ...
  133. // Agregar otra página.
  134. $page2 = new Zend_Pdf_Page($template);
  135. $pdf->pages[] = $page2;
  136. ...
  137. // Eliminar la página fuente de la plantilla de los documentos.
  138. unset($pdf->pages[$templatePageIndex]);
  139. ...
  140. ]]></programlisting>
  141. </example>
  142. <para>Es útil si necesita crear varias páginas utilizando una
  143. plantilla.</para>
  144. <caution>
  145. <para>
  146. Importante! La página clonada comparte algunos recursos de
  147. <acronym>PDF</acronym>
  148. con una página plantilla, la que puede ser utilizada sólo en
  149. el mismo documento como
  150. una página plantilla. El documento
  151. modificado pueden guardarse como uno nuevo.
  152. </para>
  153. </caution>
  154. </sect2>
  155. </sect1>