Skip to content

Documenti Multi-Pagina

Crea documenti con pagine multiple, interruzioni pagina automatiche e numerazione.

Auto Page Break

php
$pdf = Document::create()
    ->setAutoPageBreak(true, margin: 15) // Nuovo pagina a 15mm dal fondo
    ->addPage();

// Scrivi molto testo - pagina nuova creata automaticamente
for ($i = 1; $i <= 50; $i++) {
    $pdf->cell(0, 10, "Riga {$i}", newLine: true);
}

Aggiungere Pagine Manualmente

php
$pdf = Document::create();

// Pagina 1
$pdf->addPage()
    ->setFont('Helvetica', 'B', 16)
    ->cell(0, 10, 'Capitolo 1', newLine: true);

// Pagina 2
$pdf->addPage()
    ->setFont('Helvetica', 'B', 16)
    ->cell(0, 10, 'Capitolo 2', newLine: true);

// Pagina 3 in landscape
$pdf->addPage(orientation: Orientation::LANDSCAPE)
    ->cell(0, 10, 'Tabella larga', newLine: true);

Intestazioni e Piè di Pagina

php
$pdf = Document::create();

// Callback header
$pdf->onPageHeader(function (Page $page, Document $doc) {
    $page->setFont('Helvetica', 'B', 10)
        ->cell(0, 8, 'Rapporto Aziendale', border: 'B', newLine: true)
        ->ln(3);
});

// Callback footer
$pdf->onPageFooter(function (Page $page, Document $doc) {
    $page->setY(-15)
        ->setFont('Helvetica', 'I', 8)
        ->cell(0, 10, 'Pagina ' . $page->getNumber(), align: 'C');
});

$pdf->addPage();
// Header e footer applicati automaticamente

Numerazione Pagina

php
$pdf->onPageFooter(function (Page $page) {
    $pageNum = $page->getNumber();
    $totalPages = $page->getDocument()->getPageCount();

    $page->setY(-15)
        ->setFont('Helvetica', '', 8)
        ->cell(0, 10, "Pagina {$pageNum} di {$totalPages}", align: 'R');
});

Rilasciato sotto licenza LGPL-3.0-or-later.