Couleurs
TCPDF-Next fournit une gestion complète des couleurs via le trait HasColors, le value object Graphics\Color et l'abstraction Graphics\ColorSpace. Les couleurs s'appliquent indépendamment aux traits, remplissages et texte.
Définir les couleurs
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setDrawColor(255, 0, 0) // Trait rouge
->setFillColor(0, 0, 255) // Remplissage bleu
->setTextColor(51, 51, 51); // Texte gris foncéSignatures
php
setDrawColor(int $r, int $g = -1, int $b = -1): static // Couleur de trait
setFillColor(int $r, int $g = -1, int $b = -1): static // Couleur de remplissage
setTextColor(int $r, int $g = -1, int $b = -1): static // Couleur de texteQuand seul $r est fourni ($g et $b par défaut à -1), la valeur est traitée comme niveau de gris (0 = noir, 255 = blanc).
Value Object couleur
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);| Méthode Factory | Paramètres | Espace couleur |
|---|---|---|
Color::rgb(r, g, b) | 0--255 par canal | DeviceRGB |
Color::cmyk(c, m, y, k) | 0--100 par canal | DeviceCMYK |
Color::gray(value) | 0--255 | DeviceGray |
Color::spot(name, c, m, y, k) | Nom + fallback CMYK | Separation |
Espaces couleur
| Espace couleur | Usage |
|---|---|
| DeviceRGB | Sortie orientée écran (web, présentations) |
| DeviceCMYK | Sortie orientée impression (impression commerciale) |
| DeviceGray | Documents en niveaux de gris |
| Separation | Couleurs Pantone/d'accompagnement pour impression précise de marque |
Les valeurs CMYK sont écrites directement dans le flux PDF. Pour les workflows avec gestion des couleurs, intégrez un profil ICC via setColorProfile().
Transparence
php
setAlpha(float $opacity = 1.0, string $blendMode = 'Normal'): staticphp
$pdf->setAlpha(0.5, 'Multiply') // 50% opacité, fusion Multiply
->rect(10, 10, 50, 30, 'F')
->setAlpha(1.0); // Réinitialiser à complètement opaqueRéinitialisez toujours l'opacité après les sections transparentes pour éviter des effets non intentionnels sur le contenu suivant.
Modes de fusion
Les 16 modes de fusion PDF sont supportés :
| Mode | Effet |
|---|---|
Normal | Source sur destination (par défaut) |
Multiply | Assombrit — multiplie les valeurs de canal |
Screen | Éclaircit — multiplication inverse |
Overlay | Combine Multiply et Screen |
Darken / Lighten | Garde la valeur plus foncée / plus claire par canal |
ColorDodge / ColorBurn | Éclaircit / assombrit la destination |
HardLight / SoftLight | Effet de lumière fort / subtil |
Difference / Exclusion | Différence de canal (contraste haut / bas) |
Hue / Saturation | Teinte ou saturation source, luminosité destination |
Color / Luminosity | Couleur ou luminosité source |
Dégradés
Quatre types de dégradés sont rendus comme objets de shading PDF natifs :
php
$pdf->linearGradient(10, 10, 100, 50, '#ff0000', '#0000ff', [0, 0, 1, 1]); // Linéaire
$pdf->radialGradient(60, 60, 80, 80, '#ffffff', '#000000'); // Radial
$pdf->coonsPatchMesh(10, 10, 100, 100, $colors, $coords); // Coons patch mesh
$pdf->tensorProductPatchMesh(10, 10, 100, 100, $colors, $coords); // Tensor-product- Linéaire — dégradé deux couleurs le long d'un vecteur de direction.
- Radial — dégradé deux couleurs s'expandant depuis un point central.
- Coons patch mesh — remplissages multi-couleurs complexes définis par points de contrôle Bezier.
- Tensor-product patch mesh — extension Coons avec points de contrôle intérieurs additionnels.
Exemple complet
php
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()
->addPage()
->setDrawColor(255, 0, 0) // Trait rouge
->setFillColor(0, 0, 255) // Remplissage bleu
->rect(10, 10, 50, 30, 'DF') // Draw + Fill
->setAlpha(0.5, 'Multiply') // 50% opacité avec fusion Multiply
->setFillColor(255, 255, 0) // Jaune
->rect(30, 20, 50, 30, 'F') // Rectangle semi-transparent superposé
->setAlpha(1.0); // Réinitialiser opacitéConseils
- Utilisez DeviceRGB pour les PDF à l'écran et DeviceCMYK pour l'impression commerciale.
- Les couleurs d'accompagnement nécessitent
SpotColorManager— il est initialisé paresseusement à la première utilisation. - Réinitialisez toujours alpha à
1.0après les sections transparentes. - Les coordonnées de dégradé utilisent le système d'unité utilisateur actuel (par défaut : mm).