Абстракция страницы документа PDF представлена классом Zend_Pdf_Page
.
Страницы PDF либо загружаются из существующего документа PDF, либо создаются.
Новая страница может быть получена посредством создания нового объекта
Zend_Pdf_Page
или вызова метода Zend_Pdf::newPage()
,
который возвращает объект Zend_Pdf_Page
. Их различие в том, что
метод Zend_Pdf::newPage()
создает страницу, уже прикрепленную
к документу. В отличие от неприкрепленой, она не может использоваться
с несколькими документами PDF, но имеет несколько лучшую производительность.
[6]
. Какой подход использовать — решать вам.
Метод Zend_Pdf::newPage()
и конструктор Zend_Pdf_Page
принимают одинаковый набор параметров. Это либо размер страницы ($x, $y) в
пойнтах (1pt = 1/72 inch), либо предопределенная константа, которая
трактуется как тип страницы:
Zend_Pdf_Const::PAGESIZE_A4
Zend_Pdf_Const::PAGESIZE_A4_LANDSCAPE
Zend_Pdf_Const::PAGESIZE_LETTER
Zend_Pdf_Const::PAGESIZE_LETTER_LANDSCAPE
Страницы документа хранятся в открытом члене $pages
класса
Zend_Pdf
. Это массив объектов Zend_Pdf_Page
.
Он полностью описывает набор и порядок страниц документа и с ним можно
работать, как с обычным массивом:
Пример 24.4. Управление страницами документа PDF
<?php ... // Изменение порядка страниц на противоположный $pdf->pages = array_reverse($pdf->pages); ... // Добавление новой страницы $pdf->pages[] = new Zend_Pad_Page(Zend_Pdf_Const::PAGESIZE_A4); // Добавление новой страницы $pdf->pages[] = $pdf->newPage(Zend_Pdf_Const::PAGESIZE_A4); // Удаление определенной страницы unset($pdf->pages[$id]); ... ?>
[6] Имеется ограничение версии V1.0 модуля Zend_Pdf. Она будет устранена в будущих версиях. Но неприкрепленные страницы всегда дают лучший (более оптимальный) результат при совместном использовании в нескольких документах.