Ga naar inhoud
getnextpdf.com

Enum-referentie

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.

PHP-enums komen in twee vormen, en de vorm bepaalt hoe je de waarde schrijft:

  • Een backed enum (enum X: string of enum X: int) heeft een scalaire value voor elke case, dus hij maakt een retourtraject via X::from('...') / $case->value. De meeste enums hier zijn backed.
  • Een pure enum (enum X zonder backing-type) heeft cases maar geen scalaire waarde; je verwijst er altijd naar via de case (X::SomeCase). Alleen UnderlineStyle is 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.

Staande of liggende paginageometrie. Doorgegeven wanneer je een pagina toevoegt; de engine verwisselt breedte en hoogte om die te laten kloppen.

PropertyValue
FQCNNextPDF\Contracts\Orientation
Backingstring
Set viaDocument::addPage(?PageSize $size = null, Orientation $orientation = Orientation::Portrait)
CaseBacking value
Portrait'P'
Landscape'L'
use NextPDF\Contracts\Orientation;
use NextPDF\ValueObjects\PageSize;
$pdf->addPage(PageSize::a4(), Orientation::Landscape);

Hoe een gestreken open pad eindigt. ISO 32000-2:2020 §8.4.3.3.

PropertyValue
FQCNNextPDF\Graphics\LineCap
Backingint
Set viahet LineStyle-configuratieobject (new LineStyle(cap: ...)), toegepast met Document::setLineStyle(LineStyle $style)
CaseBacking valueBetekenis
Butt0Vierkant einde op het eindpunt, geen uitsteek.
Round1Halfronde boog op het eindpunt.
Square2Vierkante uitsteek die de helft van de lijndikte voorbij het eindpunt reikt.

Hoe twee gestreken segmenten samenkomen in een hoek. ISO 32000-2:2020 §8.4.3.4.

PropertyValue
FQCNNextPDF\Graphics\LineJoin
Backingint
Set viahet LineStyle-configuratieobject (new LineStyle(join: ...)), toegepast met Document::setLineStyle(LineStyle $style)
CaseBacking valueBetekenis
Miter0Scherpe hoek verlengd tot de miterlimiet.
Round1Cirkelboog die de buitenranden verbindt.
Bevel2Diagonaal 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);

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.

PropertyValue
FQCNNextPDF\Graphics\BlendMode
Backingstring
Set viaDocument::setAlpha(float $alpha, BlendMode $mode = BlendMode::Normal)
CaseBacking valueCaseBacking 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');

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.

PropertyValue
FQCNNextPDF\Graphics\RenderingIntent
Backingstring
Set viaAlleen op engineniveau — toegepast op de interne tekenengine; geen openbare Document/Config-setter.
CaseBacking valueBetekenis
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.

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.

PropertyValue
FQCNNextPDF\Core\OutputColorProfile
Backingstring
Set viaConfig::withOutputColorProfile(OutputColorProfile $profile) (de parameter $outputColorProfile van de Config-constructor)
CaseBacking valueOpmerkingen
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);

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.

PropertyValue
FQCNNextPDF\Content\TextRenderingMode
Backingint
Set viaDocument::setTextRenderingMode(TextRenderingMode $mode)
CaseBacking valueBetekenis
Fill0Vul glyphs.
Stroke1Streek glyphcontouren.
FillStroke2Vul en streek daarna.
Invisible3Render onzichtbaar (doorzoekbare OCR-lagen).
FillClip4Vul en voeg toe aan clippingpad.
StrokeClip5Streek en voeg toe aan clippingpad.
FillStrokeClip6Vul, streek en clip.
Clip7Voeg alleen toe aan clippingpad (geen zichtbare rendering).

Hoe een onderstrepingsdecoratie wordt getekend. Dit is de enige pure enum hier, dus je verwijst er altijd naar via de case.

PropertyValue
FQCNNextPDF\Contracts\UnderlineStyle
Backingpure (no backing value)
Set viaDocument::setUnderlineStyle(UnderlineStyle $style)
CaseBetekenis
RectFillGevulde rechthoek onder de basislijn (TCPDF-compatibele standaard).
StrokeLineGestreken 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);

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.

PropertyValue
FQCNNextPDF\Conformance\ConformanceMode
Backingstring
Set viaDocument::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)
CaseBacking valueContract
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, PdfUa1 en PdfUa2. Het Tagged PDF / PDF/UA-pad zit ingebouwd in Core — enableTaggedPdf() selecteert het auteurspad voor PDF/UA (standaard PdfUa2) 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 door enablePdfA(), wat een feature op Premium-niveau is (ADR-011): het vereist het nextpdf/pro-package en faalt closed met een InvalidConfigException (“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);

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).

PropertyValue
FQCNNextPDF\Navigation\AFRelationship
Backingstring
Set viaDocument::embedFile(string $path, string $description = '', AFRelationship|string $afRelationship = AFRelationship::Unspecified)
CaseBacking valueGebruik
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);
  • Configuratiereferentie — het Config-object waarvan deze enums de waarden beperken, inclusief withOutputColorProfile().
  • Graphics-moduleLineStyle, BlendMode, RenderingIntent en 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.