Layout (HasLayout)
Il trait HasLayout e il modulo Layout forniscono struttura livello-pagina: intestazioni, piè di pagina, layout multi-colonna e modalità booklet. Il modulo è composto da PageManager, ColumnManager, BookletManager e HeaderFooterManager.
Tutti i metodi restituiscono static, quindi ogni chiamata può essere concatenata.
Intestazioni e Piè di Pagina
Intestazione Integrata
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->setHeaderData('logo.png', 30, 'Company Name', 'Generated report — Confidential')
->setHeaderMargin(10)
->setFooterMargin(10)
->addPage();setHeaderData() accetta un percorso logo, larghezza logo, stringa titolo e stringa descrizione.
Callback Personalizzate
Per controllo completo, registra callback che ricevono l'istanza Document:
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create();
$pdf->setHeaderCallback(function (Document $doc) {
$doc->setFont('Helvetica', 'B', 12)
->cell(0, 10, 'My Company — Confidential', align: 'C', newLine: true)
->line(10, 18, 200, 18);
});
$pdf->setFooterCallback(function (Document $doc) {
$doc->setY(-15)
->setFont('Helvetica', '', 8)
->cell(0, 10, 'Page ' . $doc->getPage() . '/' . $doc->getNumPages(), align: 'C');
});
$pdf->addPage()
->setFont('Helvetica', '', 12)
->cell(0, 10, 'Content with custom header and footer');Abilita / Disabilita
php
$pdf->setPrintHeader(false); // Sopprimi rendering intestazione
$pdf->setPrintFooter(false); // Sopprimi rendering piè di paginaMargini
php
$pdf->setHeaderMargin(float $margin); // Spazio sopra intestazione
$pdf->setFooterMargin(float $margin); // Spazio sotto piè di paginaQuesti margini definiscono il gap tra bordo pagina e contenuto intestazione/piè di pagina.
Layout Multi-Colonna
Definizione Colonne
php
$pdf = Document::create()
->addPage()
->setColumnsArray([
['w' => 90, 's' => 5], // Colonna 1: 90mm larghezza, 5mm spazio
['w' => 90, 's' => 0], // Colonna 2: 90mm larghezza
])
->cell(0, 10, 'Text flows across columns automatically...');