Working with PagesPage CreationThe pages in a PDF document are represented as Zend_Pdf_Page instances in Zend_Pdf. PDF pages either are loaded from an existing PDF or created using the Zend_Pdf API. New pages can be created by instantiating new Zend_Pdf_Page objects directly or by calling the Zend_Pdf::newPage() method, which returns a Zend_Pdf_Page object. Zend_Pdf::newPage() creates a page that is already attached to a document. Attached pages can't be used with another PDF documents until it's not cloned. See Page cloning section for the details. The Zend_Pdf::newPage() method and the Zend_Pdf_Page constructor take the same parameters specifying page size. They can take either the size of page ($x, $y) in points (1/72 inch) or a predefined constant representing a page type:
Document pages are stored in the $pages public attribute of the Zend_Pdf class. The attribute holds an array of Zend_Pdf_Page objects and completely defines the instances and order of pages. This array can be manipulated like any other PHP array: Example #1 PDF document pages management
Page cloningExisting PDF page can be duplicated by creating new Zend_Pdf_Page object with existing page as a parameter: Example #2 Duplicating existing page
It's useful if you need several pages to be created using one template. Caution
Important! Duplicated page shares some PDF resources with a template page, so it can be used only within the same document as a template page. Modified document can be saved as new one.
Example #3 Cloning existing page
If several template pages are planned to be used as templates then it could be more efficient to utilize Zend_Pdf_Resource_Extractor class which gives an ability to share resources between cloned pages - fonts, images, etc. (otherwise new resource copy will be created for each cloned page): Example #4 Cloning existing page using Zend_Pdf_Resource_Extractor class
|