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
| Formato | Estensione | Alpha | Note |
|---|---|---|---|
| JPEG | .jpg, .jpeg | No | Baseline e progressive |
| PNG | .png | Sì | 8-bit, 24-bit, 32-bit con trasparenza |
| WebP | .webp | Sì | Lossy e lossless |
| AVIF | .avif | Sì | Richiede 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 autoFirma
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
): staticPosizionamento 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$wx$hpreservando 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 paginaImmagine 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 base64Quando carichi da stringa base64, fornisci il parametro $type così il parser conosce il formato.
Immagini con Link
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): staticphp
$pdf->imageSvg('/path/to/diagram.svg', 10, 150, 180, 100);