Páginas (HasPages)
Adicionando Páginas
php
use Yeeefang\TcpdfNext\Core\Document;
use Yeeefang\TcpdfNext\ValueObjects\PageSize;
use Yeeefang\TcpdfNext\Contracts\Orientation;
$pdf = Document::create()
->addPage() // A4 Retrato (padrão)
->addPage(PageSize::Letter()) // US Letter
->addPage(PageSize::A3(), Orientation::Landscape) // A3 Paisagem
->addPage(PageSize::Legal()); // US LegalTamanhos de Página
PageSize é um value object final readonly com métodos factory:
Série A ISO 216
A0(), A1(), A2(), A3(), A4(), A5(), A6()
Série B ISO 216
B0(), B1(), B2(), B3(), B4(), B5()
Norte-americano
Letter(), Legal(), Tabloid()
Tamanho Personalizado
php
// Largura e altura em pontos (1 pt = 1/72 polegada)
$custom = new PageSize(400.0, 600.0, 'custom');
// Ou a partir de um nome string
$a4 = PageSize::fromName('A4');Alteração de Orientação
php
$landscape = PageSize::A4()->landscape();
$portrait = PageSize::A4()->portrait();Margens
php
use Yeeefang\TcpdfNext\ValueObjects\Margin;
$pdf->setMargins(Margin::symmetric(15.0, 10.0)) // 15mm vertical, 10mm horizontal
->setLeftMargin(20.0)
->setTopMargin(25.0)
->setRightMargin(20.0);Métodos factory:
Margin::uniform(10.0)— 10mm em todos os ladosMargin::symmetric(15.0, 10.0)— vertical 15mm, horizontal 10mmMargin::zero()— sem margensnew Margin(top, right, bottom, left)— explícito
Quebra Automática de Página
php
$pdf->setAutoPageBreak(true, 20); // Quebrar a 20mm do fundo
$pdf->setAutoPageBreak(false); // DesabilitarQuando habilitado, conteúdo que ultrapassaria a página dispara automaticamente addPage().
Posição
php
$pdf->setX(50.0); // Definir posição horizontal
$pdf->setY(100.0); // Definir posição vertical
$pdf->setXY(50.0, 100.0); // Definir ambos
$x = $pdf->getX();
$y = $pdf->getY();
$width = $pdf->getPageWidth();
$height = $pdf->getPageHeight();
$margins = $pdf->getMargins(); // Retorna objeto MarginManipulação de Páginas
php
$pdf->movePage(3, 1); // Mover página 3 para posição 1
$pdf->copyPage(2); // Duplicar página 2
$pdf->deletePage(4); // Remover página 4Grupos de Páginas
Agrupe páginas para numeração independente (ex.: por capítulo):
php
$pdf->startPageGroup();
$groupPageNo = $pdf->getGroupPageNo();Regiões de Página
Defina regiões retangulares que o conteúdo deve evitar:
php
$pdf->addPageRegion(10, 10, 50, 50); // x, y, largura, altura
$regions = $pdf->getPageRegions();
$pdf->removePageRegion(0);
$pdf->setPageRegions($regions);Informações da Página
php
$currentPage = $pdf->getPage(); // Índice da página atual
$totalPages = $pdf->getNumPages(); // Contagem total de páginas