PDF document page abstraction is represented by Zend_Pdf_Page
class.
PDF pages either are loaded from existing PDF, or created.
New page can be obtained by creating new Zend_Pdf_Page
object or calling
Zend_Pdf::newPage()
method, which returns Zend_Pdf_Page
object.
The difference is that Zend_Pdf::newPage()
method creates a page, already attached to
the document. In difference from unattached pages it can't be used with several PDF documents,
but has a little bit better performance.
[9]. It's your choice, which approach should be used.
Zend_Pdf::newPage()
method and Zend_Pdf_Page
constructor take the same
set of parameters. It either the size of page ($x, $y) in a points (1/72 inch), or predefined constant,
which is treated as a page type:
Zend_Pdf_Page::SIZE_A4
Zend_Pdf_Page::SIZE_A4_LANDSCAPE
Zend_Pdf_Page::SIZE_LETTER
Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE
Document pages are stored in $pages
public member of Zend_Pdf
class.
It's an array of Zend_Pdf_Page
objects. It completely defines set and order of document pages
and can be manipulated as a common array:
مثال 24.4. PDF document pages management.
<?php ... // Reverse page order $pdf->pages = array_reverse($pdf->pages); ... // Add new page $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4); // Add new page $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4); // Remove specified page. unset($pdf->pages[$id]); ... ?>
[9] It's a limitation of V1.0 version of Zend_Pdf module. It will be eliminated in future versions. But unattached pages will always give better (more optimal) result for sharing pages between documents.