Colori
TCPDF-Next fornisce gestione colori completa attraverso il trait HasColors, il value object Graphics\Color e l'astrazione Graphics\ColorSpace. I colori si applicano indipendentemente a tratti, riempimenti e testo.
Impostazione Colori
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setDrawColor(255, 0, 0) // Tratto rosso
->setFillColor(0, 0, 255) // Riempimento blu
->setTextColor(51, 51, 51); // Testo grigio scuroFirme
php
setDrawColor(int $r, int $g = -1, int $b = -1): static // Colore tratto
setFillColor(int $r, int $g = -1, int $b = -1): static // Colore riempimento
setTextColor(int $r, int $g = -1, int $b = -1): static // Colore testoQuando viene fornito solo $r ($g e $b predefiniti a -1), il valore è trattato come scala di grigi (0 = nero, 255 = bianco).
Value Object Colore
php
use Yeeefang\TcpdfNext\Graphics\Color;
$red = Color::rgb(255, 0, 0);
$cyan = Color::cmyk(100, 0, 0, 0);
$gray = Color::gray(128);
$spot = Color::spot('Pantone 151 C', 0, 60, 100, 0);| Metodo Factory | Parametri | Spazio Colore |
|---|---|---|
Color::rgb(r, g, b) | 0--255 per canale | DeviceRGB |
Color::cmyk(c, m, y, k) | 0--100 per canale | DeviceCMYK |
Color::gray(value) | 0--255 | DeviceGray |
Color::spot(name, c, m, y, k) | Nome + fallback CMYK | Separation |
Spazi Colore
| Spazio Colore | Utilizzo |
|---|---|
| DeviceRGB | Output orientato schermo (web, presentazioni) |
| DeviceCMYK | Output orientato stampa (stampa commerciale) |
| DeviceGray | Documenti scala di grigi |
| Separation | Colori spot/Pantone per stampa brand-accurate |
I valori CMYK vengono scritti direttamente nello stream PDF. Per workflow gestiti colore, incorpora un profilo ICC tramite setColorProfile().
Trasparenza
php
setAlpha(float $opacity = 1.0, string $blendMode = 'Normal'): staticphp
$pdf->setAlpha(0.5, 'Multiply') // 50% opacità, blend Multiply
->rect(10, 10, 50, 30, 'F')
->setAlpha(1.0); // Reset a completamente opacoReimposta sempre l'opacità dopo sezioni trasparenti per prevenire effetti non intenzionali su contenuto successivo.
Blend Mode
Tutti i 16 blend mode PDF sono supportati:
| Mode | Effetto |
|---|---|
Normal | Source sopra destination (predefinito) |
Multiply | Scurisce — moltiplica valori canale |
Screen | Schiarisce — moltiplicazione inversa |
Overlay | Combina Multiply e Screen |
Darken / Lighten | Mantiene valore più scuro / chiaro per canale |
ColorDodge / ColorBurn | Schiarisce / scurisce destination |
HardLight / SoftLight | Effetto luce forte / sottile |
Difference / Exclusion | Differenza canale (contrasto alto / basso) |
Hue / Saturation | Tonalità o saturazione source, luminosità destination |
Color / Luminosity | Colore o luminosità source |
Gradienti
Quattro tipi gradiente vengono renderizzati come oggetti shading PDF nativi:
php
$pdf->linearGradient(10, 10, 100, 50, '#ff0000', '#0000ff', [0, 0, 1, 1]); // Lineare
$pdf->radialGradient(60, 60, 80, 80, '#ffffff', '#000000'); // Radiale
$pdf->coonsPatchMesh(10, 10, 100, 100, $colors, $coords); // Coons patch mesh
$pdf->tensorProductPatchMesh(10, 10, 100, 100, $colors, $coords); // Tensor-product