Zend_Pdf-Pages.xml 4.7 KB

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