Référence des énumérations
En un coup d’œil
Section intitulée « En un coup d’œil »Plusieurs méthodes de création de NextPDF prennent un enum typé plutôt qu’une
chaîne ou un entier nu. L’énumération est le contrat : elle contraint l’argument à un
ensemble fixe et valide, et l’IDE comme PHPStan rejettent toute valeur en dehors. Cette
page est l’index de recherche des valeurs autorisées pour les énumérations que tu
définis (ou reçois) via l’API publique Document et Config — plus une énumération de
couleur de niveau moteur (RenderingIntent), incluse parce que ses cas font partie du
contrat de couleur public et signalée comme étant de niveau moteur là où elle apparaît.
C’est le compagnon de la référence de configuration. Là où
l’objet Config te dit quel bouton tourner, cette page
te dit quelles valeurs ce bouton accepte. Chaque entrée liste le nom de classe
pleinement qualifié (FQCN) de l’énumération, son type de support, la liste exacte des
cas copiée depuis la source, et la méthode publique qui la prend.
Les énumérations profondes, internes au moteur (mise en page HTML/CSS, l’arbre
syntaxique abstrait, la CLI, les internes du shaper) sont délibérément exclues — tu ne
les définis jamais. Presque tout ce qui suit est une valeur que tu transmets via l’API
publique ; la seule exception, RenderingIntent, est une énumération de couleur de
niveau moteur sans setter public, listée pour être complet et étiquetée comme telle là
où elle apparaît.
Types de support
Section intitulée « Types de support »Les énumérations PHP existent sous deux formes, et la forme change la façon dont tu écris la valeur :
- Une énumération avec support (
enum X: stringouenum X: int) a unevaluescalaire pour chaque cas, donc elle fait l’aller-retour viaX::from('...')/$case->value. La plupart des énumérations ici sont avec support. - Une énumération pure (
enum Xsans type de support) a des cas mais pas de valeur scalaire ; tu y fais toujours référence par cas (X::SomeCase). SeuleUnderlineStyleest pure.
Dans les deux formes, tu passes le cas lui-même — par exemple
$pdf->addPage(orientation: Orientation::Landscape). Le type de support ne compte que
lorsque tu dois sérialiser le choix ou le relire depuis la configuration.
Mise en page
Section intitulée « Mise en page »Orientation
Section intitulée « Orientation »Géométrie de page portrait ou paysage. Passée quand tu ajoutes une page ; le moteur échange largeur et hauteur en conséquence.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Contracts\Orientation |
| Support | string |
| Défini via | Document::addPage(?PageSize $size = null, Orientation $orientation = Orientation::Portrait) |
| Cas | Valeur de support |
|---|---|
Portrait | 'P' |
Landscape | 'L' |
use NextPDF\Contracts\Orientation;use NextPDF\ValueObjects\PageSize;
$pdf->addPage(PageSize::a4(), Orientation::Landscape);Dessin et graphiques
Section intitulée « Dessin et graphiques »Comment un tracé ouvert se termine. ISO 32000-2:2020 §8.4.3.3.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Graphics\LineCap |
| Support | int |
| Défini via | l’objet de config LineStyle (new LineStyle(cap: ...)), appliqué avec Document::setLineStyle(LineStyle $style) |
| Cas | Valeur de support | Signification |
|---|---|---|
Butt | 0 | Extrémité carrée au point final, sans projection. |
Round | 1 | Arc semi-circulaire au point final. |
Square | 2 | Projection carrée s’étendant de la moitié de la largeur du trait au-delà du point final. |
LineJoin
Section intitulée « LineJoin »Comment deux segments tracés se rejoignent à un angle. ISO 32000-2:2020 §8.4.3.4.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Graphics\LineJoin |
| Support | int |
| Défini via | l’objet de config LineStyle (new LineStyle(join: ...)), appliqué avec Document::setLineStyle(LineStyle $style) |
| Cas | Valeur de support | Signification |
|---|---|---|
Miter | 0 | Angle vif prolongé jusqu’à la limite d’onglet. |
Round | 1 | Arc circulaire joignant les bords extérieurs. |
Bevel | 2 | Diagonale reliant les bords extérieurs. |
LineCap et LineJoin ne sont pas passés directement à une méthode Document — ce sont
des champs de l’objet valeur immuable NextPDF\Graphics\LineStyle, que tu remets
ensuite à setLineStyle() :
use NextPDF\Graphics\{LineStyle, LineCap, LineJoin};
$style = new LineStyle(width: 1.5, cap: LineCap::Round, join: LineJoin::Bevel);$pdf->setLineStyle($style);$pdf->line(20, 20, 120, 20);BlendMode
Section intitulée « BlendMode »La fonction de fusion de transparence appliquée au dessin suivant. Les douze premiers cas sont séparables ; les quatre derniers sont les modes TSL non séparables. ISO 32000-2:2020 §11.3.5.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Graphics\BlendMode |
| Support | string |
| Défini via | Document::setAlpha(float $alpha, BlendMode $mode = BlendMode::Normal) |
| Cas | Valeur de support | Cas | Valeur de support |
|---|---|---|---|
Normal | 'Normal' | HardLight | 'HardLight' |
Multiply | 'Multiply' | SoftLight | 'SoftLight' |
Screen | 'Screen' | Difference | 'Difference' |
Overlay | 'Overlay' | Exclusion | 'Exclusion' |
Darken | 'Darken' | Hue | 'Hue' |
Lighten | 'Lighten' | Saturation | 'Saturation' |
ColorDodge | 'ColorDodge' | Color | 'Color' |
ColorBurn | 'ColorBurn' | Luminosity | 'Luminosity' |
use NextPDF\Graphics\BlendMode;
$pdf->setAlpha(0.6, BlendMode::Multiply);$pdf->rect(20, 20, 80, 40, 'F');RenderingIntent
Section intitulée « RenderingIntent »Comment les couleurs hors gamme sont remappées pendant la conversion de couleur. Émis
sous forme d’opérateur ri. ISO 32000-2:2020 §8.6.5.8 (Table 71).
Contrairement aux autres énumérations de cette page, RenderingIntent n’a aucun
setter public Document ou Config — c’est une énumération de niveau moteur. Elle
est appliquée directement sur le moteur de dessin interne
(DrawingEngine::setRenderingIntent()), qui émet l’opérateur ri dans le flux de
contenu courant. Nous la listons ici pour être complets parce que ses cas font partie
du contrat de couleur public, mais elle ne fait pas partie de l’API de création
destinée aux développeurs que documente le reste de cette page ; traite le moteur de
dessin comme une classe interne plutôt que comme le point d’entrée que tu programmes.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Graphics\RenderingIntent |
| Support | string |
| Défini via | Niveau moteur uniquement — appliqué sur le moteur de dessin interne ; aucun setter public Document/Config. |
| Cas | Valeur de support | Signification |
|---|---|---|
RelativeColorimetric | 'RelativeColorimetric' | Préserve les couleurs dans la gamme ; rogne celles hors gamme. |
AbsoluteColorimetric | 'AbsoluteColorimetric' | Préserve exactement les valeurs colorimétriques, y compris le blanc du papier. |
Saturation | 'Saturation' | Préserve une saturation vive au détriment de la teinte/luminance. |
Perceptual | 'Perceptual' | Préserve les relations visuelles ; compression de gamme douce. |
OutputColorProfile
Section intitulée « OutputColorProfile »Le profil de couleur d’espace de travail déclaré sur l’/OutputIntent du document. La
valeur par défaut DeviceRGB préserve le comportement hérité « pas d’OutputIntent
supplémentaire » ; sélectionner tout autre cas fait émettre par le rédacteur un
OutputIntent /GTS_PDFX avec le profil ICC embarqué (ISO 32000-2:2020 §14.11.5). C’est
une valeur Config, pas une méthode par appel — définis-la sur l’objet de
configuration que tu passes au Document.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Core\OutputColorProfile |
| Support | string |
| Défini via | Config::withOutputColorProfile(OutputColorProfile $profile) (le paramètre $outputColorProfile du constructeur de Config) |
| Cas | Valeur de support | Remarques |
|---|---|---|
DeviceRGB | 'device-rgb' | Par défaut. Aucun OutputIntent supplémentaire émis. |
Srgb | 'srgb' | OutputIntent sRGB explicite (IEC 61966-2-1). Pas de gamme étendue. |
DisplayP3 | 'display-p3' | Gamme étendue Display-P3 (D65). |
Rec2020 | 'rec2020' | Gamme étendue ITU-R BT.2020 / Rec.2020. |
A98RGB | 'a98-rgb' | Adobe RGB 1998. |
ProphotoRGB | 'prophoto-rgb' | ProPhoto RGB / ROMM RGB (D50). |
use NextPDF\Core\{Config, OutputColorProfile};
$config = (new Config())->withOutputColorProfile(OutputColorProfile::DisplayP3);TextRenderingMode
Section intitulée « TextRenderingMode »Si les glyphes sont remplis, tracés, détourés ou rendus de façon invisible (le mode invisible sous-tend les couches OCR cherchables). ISO 32000-2:2020 §9.3.6, Table 104.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Content\TextRenderingMode |
| Support | int |
| Défini via | Document::setTextRenderingMode(TextRenderingMode $mode) |
| Cas | Valeur de support | Signification |
|---|---|---|
Fill | 0 | Remplit les glyphes. |
Stroke | 1 | Trace le contour des glyphes. |
FillStroke | 2 | Remplit puis trace. |
Invisible | 3 | Rend de façon invisible (couches OCR cherchables). |
FillClip | 4 | Remplit et ajoute au tracé de détourage. |
StrokeClip | 5 | Trace et ajoute au tracé de détourage. |
FillStrokeClip | 6 | Remplit, trace et détoure. |
Clip | 7 | Ajoute au tracé de détourage uniquement (pas de rendu visible). |
UnderlineStyle
Section intitulée « UnderlineStyle »Comment une décoration de soulignement est dessinée. C’est la seule énumération pure ici, donc tu y fais toujours référence par cas.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Contracts\UnderlineStyle |
| Support | pure (pas de valeur de support) |
| Défini via | Document::setUnderlineStyle(UnderlineStyle $style) |
| Cas | Signification |
|---|---|
RectFill | Rectangle rempli sous la ligne de base (valeur par défaut compatible TCPDF). |
StrokeLine | Ligne tracée sous la ligne de base (dessin de ligne sémantique). |
use NextPDF\Content\TextRenderingMode;use NextPDF\Contracts\UnderlineStyle;
$pdf->setTextRenderingMode(TextRenderingMode::Invisible); // OCR text layer$pdf->setUnderlineStyle(UnderlineStyle::StrokeLine);Conformité
Section intitulée « Conformité »ConformanceMode
Section intitulée « ConformanceMode »Le contrat de conformité au niveau du document : quelle partie ISO le rédacteur doit
honorer, et si le balisage structurel est requis. La valeur par défaut Plain est une
sortie PDF 2.0 non contrainte. ISO 14289-2:2024 (PDF/UA-2) et les parties PDF/A d’ISO
19005.
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Conformance\ConformanceMode |
| Support | string |
| Défini via | Document::setConformanceMode(ConformanceMode $mode) (issue de secours de plus bas niveau ; préfère enableTaggedPdf() pour PDF/UA-2 dans le cœur, ou enablePdfA() — Premium uniquement — pour PDF/A) |
| Cas | Valeur de support | Contrat |
|---|---|---|
Plain | 'plain' | PDF 2.0, non contraint (par défaut). |
PdfUa1 | 'pdfua1' | ISO 14289-1 (Tagged PDF/UA-1). |
PdfUa2 | 'pdfua2' | ISO 14289-2:2024 (Tagged PDF/UA-2). |
PdfA2 | 'pdfa2' | ISO 19005-2 (PDF/A-2). |
PdfA3 | 'pdfa3' | ISO 19005-3 (discriminateur de profil PDF/A-3). |
PdfA3b | 'pdfa3b' | ISO 19005-3 PDF/A-3b (Basic). |
PdfA3u | 'pdfa3u' | ISO 19005-3 PDF/A-3u (extractible en Unicode). |
PdfA4 | 'pdfa4' | ISO 19005-4:2020 (discriminateur de profil PDF/A-4). |
PdfA4e | 'pdfa4e' | ISO 19005-4:2020 PDF/A-4e (Engineering). |
PdfA4f | 'pdfa4f' | ISO 19005-4:2020 PDF/A-4f (File attachments). |
L’énumération porte des helpers de prédicat — isTagged(), isAccessibility(),
isArchival() et pdfaPart() — pour que les barrières côté rédacteur branchent sur le
mode plutôt que de le redériver.
Quels cas un build Core seul peut réellement utiliser. Le type enum liste chaque
cas, mais lister un cas n’équivaut pas à pouvoir produire cette conformité depuis le
cœur :
- Core (sans paquet supplémentaire) :
Plain,PdfUa1etPdfUa2. Le chemin Tagged PDF / PDF/UA est intégré au cœur —enableTaggedPdf()sélectionne le chemin de création PDF/UA (PdfUa2par défaut) et câble l’arbre de structure sans aucune vérification de licence. - Premium uniquement : chaque cas PDF/A (
PdfA2,PdfA3,PdfA3b,PdfA3u,PdfA4,PdfA4e,PdfA4f). Une vraie sortie PDF/A est produite parenablePdfA(), qui est une fonctionnalité de niveau Premium (ADR-011) : elle exige le paquetnextpdf/proet échoue de façon fermée avec uneInvalidConfigException(« install the nextpdf/pro package ») quand ce paquet est absent.
setConformanceMode() est une issue de secours de plus bas niveau qui n’écrit que le
champ discriminateur — elle n’installe pas la machinerie PDF/A. Définir un cas
PdfA* à travers elle dans un build Core seul étiquette donc le document sans lui
donner les garanties d’archivage que fournit enablePdfA(), donc les modes Premium
uniquement ne doivent pas être utilisés dans un build Core seul. Utilise
enableTaggedPdf() / enablePdfA() pour les vrais chemins de conformité, et prends le
paquet Premium dès qu’un livrable PDF/A est requis.
use NextPDF\Conformance\ConformanceMode;
$pdf->setConformanceMode(ConformanceMode::PdfUa2);Pièces jointes
Section intitulée « Pièces jointes »AFRelationship
Section intitulée « AFRelationship »La valeur /AFRelationship pour un fichier associé embarqué. Une valeur non conforme
fait échouer la validation PDF/A-3 et PDF/A-4, donc l’énumération est le moyen sûr de
la définir. ISO 32000-2:2020 §14.13.5 (Table 401).
| Propriété | Valeur |
|---|---|
| FQCN | NextPDF\Navigation\AFRelationship |
| Support | string |
| Défini via | Document::embedFile(string $path, string $description = '', AFRelationship|string $afRelationship = AFRelationship::Unspecified) |
| Cas | Valeur de support | Usage |
|---|---|---|
Source | 'Source' | Le document source à partir duquel le PDF a été produit. |
Data | 'Data' | Données brutes dont le PDF est dérivé (par ex. XML Factur-X / ZUGFeRD). |
Alternative | 'Alternative' | Présentation alternative (braille, sous-titres, SVG). |
Supplement | 'Supplement' | Matériel supplémentaire. |
EncryptedPayload | 'EncryptedPayload' | Un blob chiffré opaque que le PDF enveloppe. |
FormData | 'FormData' | Données de formulaire (XFDF, FDF, XML). |
Schema | 'Schema' | Schéma décrivant un fichier Data (XSD, JSON Schema). PDF 2.0. |
Unspecified | 'Unspecified' | Aucune relation spécifiée (par défaut). |
embedFile() accepte soit le cas de l’énumération, soit son littéral de chaîne (avec
ou sans barre oblique de tête), donc AFRelationship::Data et '/Data' sont
équivalents. Passer le cas est le choix sûr du point de vue des types.
use NextPDF\Navigation\AFRelationship;
// e-invoice payload: declare the XML as the source data$pdf->embedFile('invoice.xml', 'Factur-X invoice data', AFRelationship::Data);Voir aussi
Section intitulée « Voir aussi »- Référence de configuration — l’objet
Configdont ces énumérations contraignent les valeurs, y compriswithOutputColorProfile(). - Module Graphics —
LineStyle,BlendMode,RenderingIntentet le moteur de dessin. - Module Typography — le rendu de texte et la décoration de soulignement.
- Module Conformance — le discriminateur
ConformanceModeet les chemins d’activation PDF/UA / PDF/A. - Module Navigation — les fichiers associés et le
mécanisme
/AF. - Index de référence — le point d’entrée du matériel de référence API, configuration et compatibilité.