Strona dokumentu PDF jest reprezentowana przez klasę Zend_Pdf_Page.
Strony PDF mogą być tworzone lub ładowane z istniejącego dokumentu PDF.
Nowa strona może być dodana przez utworzenie obiektu Zend_Pdf_Page
lub wywołanie metody Zend_Pdf::newPage(), która zwraca obiekt Zend_Pdf_Page.
Różnicą jest to, że metoda Zend_Pdf::newPage() tworzy stronę dołączoną
do dokumentu. W przeciwieństwie to luźnych stron, niepołączonych z żadnym dokumentem,
nie może ona być użyta z kilkoma dokumentami PDF, ale ma ona trochę lepszą wydajność.
[10]. Do ciebie należy wybor sposobu, którego użyjesz.
Metoda Zend_Pdf::newPage() oraz konstruktor klasy Zend_Pdf_Page
przyjmują ten sam zestaw parametrów. W obydwóch jest to rozmiar strony ($x, $y)
w punktach (1/72 cala), lub definiowana stała, która jest traktowana jako typ
strony:
-
Zend_Pdf_Page::SIZE_A4
-
Zend_Pdf_Page::SIZE_A4_LANDSCAPE
-
Zend_Pdf_Page::SIZE_LETTER
-
Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE
Strony dokumentu są przechowywane w tablicy $pages będącej
publiczną właściwością klasy Zend_Pdf. Jest to tablica obiektów
Zend_Pdf_Page. Kompletnie definiuje ona zbiór oraz kolejność
stron dokumentu, a także możemy nią manipulować jak zwykłą tablicą:
Przykład 639. Zarządzanie stronami dokumentu PDF.
...
// Odwróć kolejność stron
$pdf->pages = array_reverse($pdf->pages);
...
// Dodaj nową stronę
$pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
// Dodaj nową stronę
$pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
// Usuń określoną stronę.
unset($pdf->pages[$id]);
...
Istniejące strony PDF mogą być klonowane przez tworzenie nowego
obiektu Zend_Pdf_Page z istniejącą stroną w parametrze.
Przykład 640. Klonowanie istniejącej strony.
...
// Przechowaj szablon strony w osobnej zmiennej
$template = $pdf->pages[$templatePageIndex];
...
// Dodaj nową stronę
$page1 = new Zend_Pdf_Page($template);
$pdf->pages[] = $page1;
...
// Dodaj kolejną stronę
$page2 = new Zend_Pdf_Page($template);
$pdf->pages[] = $page2;
...
// Usuń źródłowy szablon strony z dokumentów
unset($pdf->pages[$templatePageIndex]);
...
Jest to przydatne gdy chcesz utworzyć wiele stron używając jednego szablonu.
Ostrzeżenie
Ważne! Klonowane strony korzystają z tych samych zasobów co szablon strony, więc mogą być one użyte tylko w tym samym dokumencie co szablon. Zmodyfkowany dokument może być zapisany jako nowy dokument.
[10] Jest to limitacja wersji V1.0 modułu Zend_Pdf. Będzie to wyeliminowane w przyszłych wersjach. Jednak luźne strony zawsze będą dawały lepsze (bardziej optymalne) wyniki przy używaniu stron w kilku dokumentach.