Zend_Pdf-Pages.xml 4.8 KB

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