Skip to content

Tabelle

Crea tabelle formattate per dati strutturati.

Tabella Semplice

php
$pdf = Document::create()->addPage();

// Header tabella
$pdf->setFont('Helvetica', 'B', 12)
    ->setFillColor(Color::rgb(200, 200, 200));

$pdf->cell(60, 8, 'Prodotto', border: 1, fill: true)
    ->cell(30, 8, 'Q.tà', border: 1, fill: true)
    ->cell(40, 8, 'Prezzo', border: 1, fill: true, newLine: true);

// Righe dati
$pdf->setFont('Helvetica', '', 11);

$data = [
    ['Widget A', '10', '$50.00'],
    ['Widget B', '5', '$75.00'],
    ['Widget C', '8', '$60.00'],
];

foreach ($data as $row) {
    $pdf->cell(60, 7, $row[0], border: 1)
        ->cell(30, 7, $row[1], border: 1)
        ->cell(40, 7, $row[2], border: 1, newLine: true);
}

Tabella con Colori Alternati

php
$pdf->setFont('Helvetica', '', 11);

foreach ($data as $i => $row) {
    $fill = ($i % 2 === 0) ? Color::rgb(245, 245, 245) : Color::rgb(255, 255, 255);
    $pdf->setFillColor($fill);

    $pdf->cell(60, 7, $row[0], border: 1, fill: true)
        ->cell(30, 7, $row[1], border: 1, fill: true)
        ->cell(40, 7, $row[2], border: 1, fill: true, newLine: true);
}

Tabella Responsive

php
// Calcola larghezze colonna basate su larghezza pagina
$pageWidth = $pdf->getPageWidth() - 20; // Margini 10mm ciascun lato

$col1 = $pageWidth * 0.50; // 50%
$col2 = $pageWidth * 0.20; // 20%
$col3 = $pageWidth * 0.30; // 30%

$pdf->cell($col1, 8, 'Descrizione', border: 1)
    ->cell($col2, 8, 'Q.tà', border: 1)
    ->cell($col3, 8, 'Totale', border: 1, newLine: true);

Rilasciato sotto licenza LGPL-3.0-or-later.