Skip to content

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 scuro

Firme

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 testo

Quando 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 FactoryParametriSpazio Colore
Color::rgb(r, g, b)0--255 per canaleDeviceRGB
Color::cmyk(c, m, y, k)0--100 per canaleDeviceCMYK
Color::gray(value)0--255DeviceGray
Color::spot(name, c, m, y, k)Nome + fallback CMYKSeparation

Spazi Colore

Spazio ColoreUtilizzo
DeviceRGBOutput orientato schermo (web, presentazioni)
DeviceCMYKOutput orientato stampa (stampa commerciale)
DeviceGrayDocumenti scala di grigi
SeparationColori 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'): static
php
$pdf->setAlpha(0.5, 'Multiply')    // 50% opacità, blend Multiply
    ->rect(10, 10, 50, 30, 'F')
    ->setAlpha(1.0);                // Reset a completamente opaco

Reimposta sempre l'opacità dopo sezioni trasparenti per prevenire effetti non intenzionali su contenuto successivo.

Blend Mode

Tutti i 16 blend mode PDF sono supportati:

ModeEffetto
NormalSource sopra destination (predefinito)
MultiplyScurisce — moltiplica valori canale
ScreenSchiarisce — moltiplicazione inversa
OverlayCombina Multiply e Screen
Darken / LightenMantiene valore più scuro / chiaro per canale
ColorDodge / ColorBurnSchiarisce / scurisce destination
HardLight / SoftLightEffetto luce forte / sottile
Difference / ExclusionDifferenza canale (contrasto alto / basso)
Hue / SaturationTonalità o saturazione source, luminosità destination
Color / LuminosityColore 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

Rilasciato sotto licenza LGPL-3.0-or-later.