Document pages.
Page creation.
A abstração da página de um documento PDF é representada pela classe Zend_Pdf_Page.
Páginas PDF podem ser carregadas de um PDF existente, ou criadas.
Uma nova página pode ser obtida através da criação de um novo objeto Zend_Pdf_Page ou pela chamada
ao método Zend_Pdf::newPage(), que retorna um objeto Zend_Pdf_Page. A diferença é que
o método Zend_Pdf::newPage() cria uma nova página já anexada ao documento. Isso faz com que,
diferentemente das páginas não anexadas, a página criada por este método não possa ser usada em outros documentos
PDF. Entretanto, ela tem uma performance um pouco melhor.
Esta é uma limitação da versão 1.0 do módulo Zend_Pdf. Esta limitação será eliminada nas versões futuras, mas
páginas não anexadas sempre terão um desempenho melhor no compartilhamento de páginas entre diversos
documentos.
. A escolha sobre qual abordagem utilizar é sua.
O método Zend_Pdf::newPage() e o construtor Zend_Pdf_Page recebem o mesmo conjunto de
parâmetros de definição do tamanho da página. Os parâmetros são ou o tamanho da página ($x, $y) em pontos (1/72 inch),
ou uma constante prédefinida, que é tratada como um tipo de página:
Zend_Pdf_Page::SIZE_A4
Zend_Pdf_Page::SIZE_A4_LANDSCAPE
Zend_Pdf_Page::SIZE_LETTER
Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE
As páginas de um documento são armazenadas na variável pública $pages da classe Zend_Pdf.
Este atributo é sempre um array de objetos Zend_Pdf_Page. Ele define completamente o conjunto e a ordem
das páginas do documento e pode ser manipulado como qualquer array:
Gerenciamento de páginas de documentos 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]);
...]]>
Clonde de Páginas.
Páginas PDF podem ser clonadas através da criação de um novo objeto Zend_Pdf_Page com uma página
já existente como parâmetro:
Clonando páginas existentes.
pages[$templatePageIndex];
...
// Add new page
$page1 = new Zend_Pdf_Page($template);
$pdf->pages[] = $page1;
...
// Add another page
$page2 = new Zend_Pdf_Page($template);
$pdf->pages[] = $page2;
...
// Remove source template page from the documents.
unset($pdf->pages[$templatePageIndex]);
...]]>
É útil caso você precisa criar diversas páginas usando um template.
Importante! Uma página clonada compartilha alguns recursos do PDF com a página template, então ela só pode
ser usada no mesmo documento como uma página template. Um documento modificado pode ser salvo como um novo
documento.