Enum-referentie
In een oogopslag
Sectie met titel “In een oogopslag”Verschillende NextPDF-auteursmethodes nemen een getypeerde enum aan in plaats van
een kale string of integer. De enum is het contract: hij beperkt het argument tot
een vaste, geldige verzameling, en de IDE en PHPStan wijzen elke waarde daarbuiten
af. Deze pagina is de opzoeklijst met toegestane waarden voor de enums die je
instelt (of ontvangt) via de openbare Document- en Config-API — plus één
kleur-enum op engineniveau (RenderingIntent), opgenomen omdat de cases ervan deel
uitmaken van het openbare kleurcontract en gemarkeerd als engineniveau waar hij
voorkomt.
Dit is de tegenhanger van de configuratiereferentie. Waar
het Config-object je vertelt welke knop je moet
draaien, vertelt deze pagina je welke waarden die knop accepteert. Elke vermelding
geeft de volledig gekwalificeerde klassenaam (FQCN) van de enum, het backing-type
ervan, de exacte lijst met cases gekopieerd uit de bron, en de openbare methode die
hem aanneemt.
Diepe engine-interne enums (HTML/CSS-layout, de abstracte syntaxboom, de CLI, de
interne onderdelen van de shaper) zijn bewust uitgesloten — die stel je nooit in.
Vrijwel alles hieronder is een waarde die je doorgeeft via de openbare API; de ene
uitzondering, RenderingIntent, is een kleur-enum op engineniveau zonder openbare
setter, vermeld voor de volledigheid en als zodanig gelabeld waar hij voorkomt.
Backing-typen
Sectie met titel “Backing-typen”PHP-enums komen in twee vormen, en de vorm bepaalt hoe je de waarde schrijft:
- Een backed enum (
enum X: stringofenum X: int) heeft een scalairevaluevoor elke case, dus hij maakt een retourtraject viaX::from('...')/$case->value. De meeste enums hier zijn backed. - Een pure enum (
enum Xzonder backing-type) heeft cases maar geen scalaire waarde; je verwijst er altijd naar via de case (X::SomeCase). AlleenUnderlineStyleis puur.
In beide vormen geef je de case zelf door — bijvoorbeeld
$pdf->addPage(orientation: Orientation::Landscape). Het backing-type doet er alleen
toe wanneer je de keuze moet serialiseren of terug moet lezen uit de configuratie.
Pagina-instelling
Sectie met titel “Pagina-instelling”Orientation
Sectie met titel “Orientation”Staande of liggende paginageometrie. Doorgegeven wanneer je een pagina toevoegt; de engine verwisselt breedte en hoogte om die te laten kloppen.
| Property | Value |
|---|---|
| FQCN | NextPDF\Contracts\Orientation |
| Backing | string |
| Set via | Document::addPage(?PageSize $size = null, Orientation $orientation = Orientation::Portrait) |
| Case | Backing value |
|---|---|
Portrait | 'P' |
Landscape | 'L' |
use NextPDF\Contracts\Orientation;use NextPDF\ValueObjects\PageSize;
$pdf->addPage(PageSize::a4(), Orientation::Landscape);Tekenen en graphics
Sectie met titel “Tekenen en graphics”LineCap
Sectie met titel “LineCap”Hoe een gestreken open pad eindigt. ISO 32000-2:2020 §8.4.3.3.
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\LineCap |
| Backing | int |
| Set via | het LineStyle-configuratieobject (new LineStyle(cap: ...)), toegepast met Document::setLineStyle(LineStyle $style) |
| Case | Backing value | Betekenis |
|---|---|---|
Butt | 0 | Vierkant einde op het eindpunt, geen uitsteek. |
Round | 1 | Halfronde boog op het eindpunt. |
Square | 2 | Vierkante uitsteek die de helft van de lijndikte voorbij het eindpunt reikt. |
LineJoin
Sectie met titel “LineJoin”Hoe twee gestreken segmenten samenkomen in een hoek. ISO 32000-2:2020 §8.4.3.4.
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\LineJoin |
| Backing | int |
| Set via | het LineStyle-configuratieobject (new LineStyle(join: ...)), toegepast met Document::setLineStyle(LineStyle $style) |
| Case | Backing value | Betekenis |
|---|---|---|
Miter | 0 | Scherpe hoek verlengd tot de miterlimiet. |
Round | 1 | Cirkelboog die de buitenranden verbindt. |
Bevel | 2 | Diagonaal die de buitenranden verbindt. |
LineCap en LineJoin worden niet rechtstreeks aan een Document-methode doorgegeven
— het zijn velden van het onveranderlijke value object NextPDF\Graphics\LineStyle,
dat je vervolgens aan setLineStyle() overhandigt:
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
Sectie met titel “BlendMode”De transparantie-blendfunctie die op het volgende tekenwerk wordt toegepast. De eerste twaalf cases zijn scheidbaar; de laatste vier zijn de niet-scheidbare HSL-modi. ISO 32000-2:2020 §11.3.5.
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\BlendMode |
| Backing | string |
| Set via | Document::setAlpha(float $alpha, BlendMode $mode = BlendMode::Normal) |
| Case | Backing value | Case | Backing value |
|---|---|---|---|
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
Sectie met titel “RenderingIntent”Hoe kleuren buiten het gamut opnieuw worden toegewezen tijdens kleurconversie.
Uitgestoten als de operator ri. ISO 32000-2:2020 §8.6.5.8 (Table 71).
Anders dan de overige enums op deze pagina heeft RenderingIntent geen openbare
Document- of Config-setter — het is een enum op engineniveau. Hij wordt
rechtstreeks toegepast op de interne tekenengine (DrawingEngine::setRenderingIntent()),
die de operator ri in de huidige content stream uitstoot. We vermelden hem hier
voor de volledigheid omdat de cases ervan deel uitmaken van het openbare
kleurcontract, maar hij is geen onderdeel van de auteursAPI voor ontwikkelaars die
de rest van deze pagina documenteert; behandel de tekenengine als een interne klasse
in plaats van het toegangspunt waartegen je programmeert.
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\RenderingIntent |
| Backing | string |
| Set via | Alleen op engineniveau — toegepast op de interne tekenengine; geen openbare Document/Config-setter. |
| Case | Backing value | Betekenis |
|---|---|---|
RelativeColorimetric | 'RelativeColorimetric' | Behoud kleuren binnen het gamut; clip die erbuiten. |
AbsoluteColorimetric | 'AbsoluteColorimetric' | Behoud colorimetrische waarden exact, inclusief papierwit. |
Saturation | 'Saturation' | Behoud levendige verzadiging ten koste van tint/luminantie. |
Perceptual | 'Perceptual' | Behoud visuele verhoudingen; soepele gamutcompressie. |
OutputColorProfile
Sectie met titel “OutputColorProfile”Het kleurprofiel van de werkruimte dat wordt verklaard op de /OutputIntent van het
document. De standaard DeviceRGB behoudt het oude gedrag van “geen extra
OutputIntent”; het selecteren van een andere case zorgt ervoor dat de writer een
/GTS_PDFX-OutputIntent met het meegeleverde ICC-profiel uitstoot (ISO 32000-2:2020
§14.11.5). Dit is een Config-waarde, geen methode per aanroep — stel hem in op
het configuratieobject dat je aan het Document doorgeeft.
| Property | Value |
|---|---|
| FQCN | NextPDF\Core\OutputColorProfile |
| Backing | string |
| Set via | Config::withOutputColorProfile(OutputColorProfile $profile) (de parameter $outputColorProfile van de Config-constructor) |
| Case | Backing value | Opmerkingen |
|---|---|---|
DeviceRGB | 'device-rgb' | Standaard. Geen extra OutputIntent uitgestoten. |
Srgb | 'srgb' | Expliciete sRGB-OutputIntent (IEC 61966-2-1). Geen breed gamut. |
DisplayP3 | 'display-p3' | Display-P3 breed gamut (D65). |
Rec2020 | 'rec2020' | ITU-R BT.2020 / Rec.2020 breed gamut. |
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
Sectie met titel “TextRenderingMode”Of glyphs worden gevuld, gestreken, geclipt of onzichtbaar worden gerenderd (de onzichtbare modus ligt ten grondslag aan doorzoekbare OCR-lagen). ISO 32000-2:2020 §9.3.6, Table 104.
| Property | Value |
|---|---|
| FQCN | NextPDF\Content\TextRenderingMode |
| Backing | int |
| Set via | Document::setTextRenderingMode(TextRenderingMode $mode) |
| Case | Backing value | Betekenis |
|---|---|---|
Fill | 0 | Vul glyphs. |
Stroke | 1 | Streek glyphcontouren. |
FillStroke | 2 | Vul en streek daarna. |
Invisible | 3 | Render onzichtbaar (doorzoekbare OCR-lagen). |
FillClip | 4 | Vul en voeg toe aan clippingpad. |
StrokeClip | 5 | Streek en voeg toe aan clippingpad. |
FillStrokeClip | 6 | Vul, streek en clip. |
Clip | 7 | Voeg alleen toe aan clippingpad (geen zichtbare rendering). |
UnderlineStyle
Sectie met titel “UnderlineStyle”Hoe een onderstrepingsdecoratie wordt getekend. Dit is de enige pure enum hier, dus je verwijst er altijd naar via de case.
| Property | Value |
|---|---|
| FQCN | NextPDF\Contracts\UnderlineStyle |
| Backing | pure (no backing value) |
| Set via | Document::setUnderlineStyle(UnderlineStyle $style) |
| Case | Betekenis |
|---|---|
RectFill | Gevulde rechthoek onder de basislijn (TCPDF-compatibele standaard). |
StrokeLine | Gestreken lijn onder de basislijn (semantisch lijntekenen). |
use NextPDF\Content\TextRenderingMode;use NextPDF\Contracts\UnderlineStyle;
$pdf->setTextRenderingMode(TextRenderingMode::Invisible); // OCR text layer$pdf->setUnderlineStyle(UnderlineStyle::StrokeLine);Conformiteit
Sectie met titel “Conformiteit”ConformanceMode
Sectie met titel “ConformanceMode”Het conformiteitscontract op documentniveau: welk ISO-deel de writer moet eerbiedigen,
en of structurele tagging vereist is. De standaard Plain is onbeperkte PDF
2.0-uitvoer. ISO 14289-2:2024 (PDF/UA-2) en de ISO 19005 PDF/A-delen.
| Property | Value |
|---|---|
| FQCN | NextPDF\Conformance\ConformanceMode |
| Backing | string |
| Set via | Document::setConformanceMode(ConformanceMode $mode) (escape hatch op lager niveau; geef de voorkeur aan enableTaggedPdf() voor PDF/UA-2 in Core, of enablePdfA() — alleen Premium — voor PDF/A) |
| Case | Backing value | Contract |
|---|---|---|
Plain | 'plain' | PDF 2.0, onbeperkt (standaard). |
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 (PDF/A-3 profile discriminator). |
PdfA3b | 'pdfa3b' | ISO 19005-3 PDF/A-3b (Basic). |
PdfA3u | 'pdfa3u' | ISO 19005-3 PDF/A-3u (Unicode-extractable). |
PdfA4 | 'pdfa4' | ISO 19005-4:2020 (PDF/A-4 profile discriminator). |
PdfA4e | 'pdfa4e' | ISO 19005-4:2020 PDF/A-4e (Engineering). |
PdfA4f | 'pdfa4f' | ISO 19005-4:2020 PDF/A-4f (File attachments). |
De enum draagt predicaathulpfuncties — isTagged(), isAccessibility(),
isArchival() en pdfaPart() — zodat writer-side gates op de modus aftakken in
plaats van die opnieuw af te leiden.
Welke cases een Core-only build daadwerkelijk kan gebruiken. Het enum-type
somt elke case op, maar een case opsommen is niet hetzelfde als die conformiteit uit
Core kunnen produceren:
- Core (geen extra package):
Plain,PdfUa1enPdfUa2. Het Tagged PDF / PDF/UA-pad zit ingebouwd in Core —enableTaggedPdf()selecteert het auteurspad voor PDF/UA (standaardPdfUa2) en bedraadt de structuurboom zonder enige licentiecontrole. - Alleen Premium: elke PDF/A-case (
PdfA2,PdfA3,PdfA3b,PdfA3u,PdfA4,PdfA4e,PdfA4f). Echte PDF/A-uitvoer wordt geproduceerd doorenablePdfA(), wat een feature op Premium-niveau is (ADR-011): het vereist hetnextpdf/pro-package en faalt closed met eenInvalidConfigException(“install the nextpdf/pro package”) wanneer dat package ontbreekt.
setConformanceMode() is een escape hatch op lager niveau die alleen het
discriminatorveld schrijft — het installeert niet de PDF/A-machinerie. Een
PdfA*-case er in een Core-only build doorheen instellen labelt het document daarom
zonder het de archiveringsgaranties te geven die enablePdfA() biedt, dus op de
alleen-Premium-modi mag in een Core-only build niet worden vertrouwd. Gebruik
enableTaggedPdf() / enablePdfA() voor de echte conformiteitspaden, en grijp naar
het Premium-package wanneer een PDF/A-deliverable vereist is.
use NextPDF\Conformance\ConformanceMode;
$pdf->setConformanceMode(ConformanceMode::PdfUa2);Bijlagen
Sectie met titel “Bijlagen”AFRelationship
Sectie met titel “AFRelationship”De /AFRelationship-waarde voor een ingesloten bijbehorend bestand. Een
niet-conforme waarde faalt op PDF/A-3- en PDF/A-4-validatie, dus de enum is de veilige
manier om hem in te stellen. ISO 32000-2:2020 §14.13.5 (Table 401).
| Property | Value |
|---|---|
| FQCN | NextPDF\Navigation\AFRelationship |
| Backing | string |
| Set via | Document::embedFile(string $path, string $description = '', AFRelationship|string $afRelationship = AFRelationship::Unspecified) |
| Case | Backing value | Gebruik |
|---|---|---|
Source | 'Source' | Het brondocument waaruit de PDF is geproduceerd. |
Data | 'Data' | Ruwe data waarvan de PDF is afgeleid (bijv. Factur-X / ZUGFeRD XML). |
Alternative | 'Alternative' | Alternatieve presentatie (braille, captions, SVG). |
Supplement | 'Supplement' | Aanvullend materiaal. |
EncryptedPayload | 'EncryptedPayload' | Een ondoorzichtige versleutelde blob die de PDF omvat. |
FormData | 'FormData' | Formuliergegevens (XFDF, FDF, XML). |
Schema | 'Schema' | Schema dat een Data-bestand beschrijft (XSD, JSON Schema). PDF 2.0. |
Unspecified | 'Unspecified' | Geen relatie opgegeven (standaard). |
embedFile() accepteert ofwel de enum-case ofwel het string-literal ervan (met of
zonder een voorafgaande slash), dus AFRelationship::Data en '/Data' zijn
equivalent. De case doorgeven is de type-veilige keuze.
use NextPDF\Navigation\AFRelationship;
// e-invoice payload: declare the XML as the source data$pdf->embedFile('invoice.xml', 'Factur-X invoice data', AFRelationship::Data);Zie ook
Sectie met titel “Zie ook”- Configuratiereferentie — het
Config-object waarvan deze enums de waarden beperken, inclusiefwithOutputColorProfile(). - Graphics-module —
LineStyle,BlendMode,RenderingIntenten de tekenengine. - Typography-module — tekstrendering en onderstrepingsdecoratie.
- Conformance-module — de
ConformanceMode- discriminator en de enable-paden voor PDF/UA / PDF/A. - Navigation-module — bijbehorende bestanden en het
/AF-mechanisme. - Referentie-index — het toegangspunt voor referentiemateriaal over API, configuratie en compatibiliteit.