Las páginas en un documento
PDF
están representadas como
instancias
Zend_Pdf_Page
en
Zend_Pdf
.
Las páginas
PDF
o bien son cargadas desde una
PDF
ya existente o
creadas usando la
API
Zend_Pdf
.
Se pueden crear nuevas páginas instanciando directamente al
objeto
Zend_Pdf_Page
o llamando al método
Zend_Pdf::newPage()
, que devuelve un
objeto
Zend_Pdf_Page
.
Zend_Pdf::newPage()
crea una página que
ya está agregada a un documento. Las páginas no agregadas no pueden
ser utilizadas con múltiples documentos
PDF
, pero son algo más
eficientes.
[10]
El método
Zend_Pdf::newPage()
y el
constructor
Zend_Pdf_Page
toman los mismos
parámetros que especifican el tamaño de la página. Pueden tomar el
tamaño de la página ($x, $y) en puntos (1/72 pulgadas) o una
constante predefinida
representando un tipo de página:
-
Zend_Pdf_Page::SIZE_A4
-
Zend_Pdf_Page::SIZE_A4_LANDSCAPE
-
Zend_Pdf_Page::SIZE_LETTER
-
Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE
Las páginas del documento se almacenados en el atributo público
$pages
de la clase
Zend_Pdf
. El atributo posee un array de
objetos
Zend_Pdf_Page
y define completamente
las instancias y el orden de las páginas. Este array puede
manipularse como cualquie otro array
PHP
:
Ejemplo 636. Administración de Páginas de un Documento PDF
... // Invertir el orden de las páginas. $pdf->pages = array_reverse($pdf->pages); ... // Agregar una nueva página. $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); // Agregar una nueva página. $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4); // Eliminar la página especificada. unset($pdf->pages[$id]); ...
La página
PDF
existente puede ser clonada creando un nuevo objeto
Zend_Pdf_Page
con una página existente
como parámetro:
Ejemplo 637. Clonando una Página Existente
... // Almacenar la página plantilla en una variable $template = $pdf->pages[$templatePageIndex]; ... // Agregar una nueva página. $page1 = new Zend_Pdf_Page($template); $pdf->pages[] = $page1; ... // Agregar otra página. $page2 = new Zend_Pdf_Page($template); $pdf->pages[] = $page2; ... // Eliminar la página fuente de la plantilla de los documentos. unset($pdf->pages[$templatePageIndex]); ...
Es útil si necesita crear varias páginas utilizando una plantilla.
Atención
Importante! La página clonada comparte algunos recursos de PDF con una página plantilla, la que puede ser utilizada sólo en el mismo documento como una página plantilla. El documento modificado pueden guardarse como uno nuevo.
[10] Es una limitación de la versión actual de Zend Framework. Será eliminada en futuras versiones. Pero las páginas no agregadas siempre dan mejor resultado (más óptimo) para compartir páginas entre los documentos.