# 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.

    <?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]);

        ...

## 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.

    <?php
        ...
        // Store template page in a separate variable
        $template = $pdf->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.