24.4. Страницы документа

Абстракция страницы документа 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), либо предопределенная константа, которая трактуется как тип страницы:

Страницы документа хранятся в открытом члене $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. Она будет устранена в будущих версиях. Но неприкрепленные страницы всегда дают лучший (более оптимальный) результат при совместном использовании в нескольких документах.