20.4. Document pages.
Prev | Chapter 20. Zend_Pdf | Next

## 20.4. Document pages.

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. [6]. 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:

Example 20.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]);

    ...
    ?>

[6] 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.

Prev | Up | Next
20.3. Save changes to the PDF document. | Home | 20.5. Drawing.