Skip to content

Immagini

TCPDF-Next supporta l'incorporamento di immagini raster e vettoriali in documenti PDF. Il sottosistema immagini risiede nel modulo Graphics ed è accessibile tramite l'API fluente Document.

Formati Supportati

FormatoEstensioneAlphaNote
JPEG.jpg, .jpegNoBaseline e progressive
PNG.png8-bit, 24-bit, 32-bit con trasparenza
WebP.webpLossy e lossless
AVIF.avifRichiede GD o Imagick con supporto AVIF
SVG.svg--Vettoriale — renderizzato tramite SvgParser
EPS.eps, .ai--PostScript — renderizzato tramite EpsParser

image()

php
use Yeeefang\TcpdfNext\Core\Document;

$pdf = Document::create()
    ->addPage()
    ->image('/path/to/logo.png', 10, 10, 50, 0);   // Larghezza=50mm, altezza auto

Firma

php
image(
    string $file,             // Percorso file, URL o stringa @base64
    float  $x     = '',       // Posizione X ('' = X corrente)
    float  $y     = '',       // Posizione Y ('' = Y corrente)
    float  $w     = 0,        // Larghezza  (0 = auto da aspect ratio)
    float  $h     = 0,        // Altezza (0 = auto da aspect ratio)
    string $type  = '',       // Forza formato: 'JPEG', 'PNG', 'WebP', ecc.
    mixed  $link  = '',       // URL o identificatore link interno
    string $align = '',       // Allineamento dopo immagine: T, M, B, N
    bool   $resize    = false,
    int    $dpi       = 300,
    string $palign    = '',   // Allineamento immagine dentro cella: L, C, R
    bool   $fitbox    = false,
    bool   $fitonpage = false
): static

Posizionamento e Scaling

php
$pdf->image('/path/to/photo.jpg', 10, 60, 100, 80);      // Assoluto: 100x80mm a (10,60)
$pdf->image('/path/to/banner.png', 10, 10, 190, 0);       // Auto altezza da larghezza
$pdf->image('/path/to/portrait.jpg', 10, 10, 0, 100);     // Auto larghezza da altezza
$pdf->image('/path/to/photo.jpg', 10, 10, 80, 60, fitbox: true);    // Adatta in box
$pdf->image('/path/to/chart.png', 10, 10, 0, 0, fitonpage: true);   // Adatta su pagina
  • Posizione assoluta — fornisci coordinate esplicite $x, $y (unità predefinita: mm).
  • Auto altezza/larghezza — imposta una dimensione a 0; l'altra è calcolata dall'aspect ratio.
  • Adatta dentro box (fitbox: true) — scala per adattare $w x $h preservando aspect ratio.
  • Adatta su pagina (fitonpage: true) — assicura che l'immagine non superi mai l'area stampabile.

DPI e Risoluzione

Il parametro $dpi controlla la mappatura pixel-to-physical-size quando sia $w che $h sono 0:

php
$pdf->image('/path/to/scan.jpg', 10, 10, 0, 0, dpi: 150);  // Più grande su pagina
$pdf->image('/path/to/scan.jpg', 10, 10, 0, 0, dpi: 300);  // Più piccolo su pagina

Immagine da Stringa o URL

php
$pdf->image('https://example.com/logo.png', 10, 10, 50, 0);           // Da URL
$pdf->image('@' . base64_encode($imageData), 10, 10, 50, 0, 'PNG');   // Da base64

Quando carichi da stringa base64, fornisci il parametro $type così il parser conosce il formato.

php
$pdf->image('/path/to/logo.png', 10, 10, 40, 0, link: 'https://example.com');

Immagini SVG

imageSvg() renderizza SVG come percorsi vettoriali PDF nativi — nessuna rasterizzazione:

php
imageSvg(string $file, float $x, float $y, float $w, float $h, mixed $link = '', string $align = '', string $palign = '', mixed $border = 0): static
php
$pdf->imageSvg('/path/to/diagram.svg', 10, 150, 180, 100);

Rilasciato sotto licenza LGPL-3.0-or-later.