PHP-cookbook
PHP-cookbook
Sectie met titel “PHP-cookbook”Deze index geeft een overzicht van de PHP-native NextPDF-recipes: taakgerichte, uitvoerbare pagina’s die rechtstreeks tegen de core-PHP-API zijn geschreven. De core-repository nextpdf beheert en verifieert elk recipe onder docs/public/cookbook/php/. Elk recipe heeft een examples/*.php-script en een testharnas in tests/Cookbook/Php/. De aggregator haalt vervolgens elke pagina naar deze site en behoudt de bronherkomst ervan.
Omdat deze pagina een index is, doet zij geen uitspraken over het gedrag van een recipe. Elke rij legt het doel van het recipe vast, de core-module die het gebruikt en het opgegeven reproduceerbaarheidsprofiel. Het profiel en elke conformiteitsuitspraak horen thuis op de recipepagina zelf. Ze komen uit de frontmatter van die pagina en de bijbehorende in-repo-test, niet uit deze index. Voor het integratiecookbook (framework / renderer / service), raadpleeg Integratiecookbook. Voor het contract dat elk uitvoerbaar recipe volgt, raadpleeg Receptconventies.
Hoe een recipekoppeling wordt omgezet
Sectie met titel “Hoe een recipekoppeling wordt omgezet”Elke [[…]] hieronder is een vooruitverwijzing naar een pagina die is geschreven in de core-repository onder docs/public/cookbook/php/. De aggregator haalt die pagina vervolgens in deze site. Elke slug volgt één conventie: een enkel segment.
/cookbook/php/<recipe>/<recipe> benoemt het doel van het recipe in kebab-case (bijvoorbeeld render-html-to-pdf, niet de modulenaam html). De slug staat in kleine letters, is gescheiden door koppeltekens, bevat geen versienummers en eindigt op één afsluitende slash. Totdat een doelpagina is geaggregeerd, is de koppeling ervan een plaatshouder en wordt die niet omgezet. Een recipe dat nog geen uitvoerbaar voorbeeld heeft (de lacunelijst hieronder), kan pas worden gepubliceerd zodra het voorbeeld en het testharnas bestaan, ook al verwijst de koppeling al naar de definitieve slug.
Reproduceerbaarheidsprofiel, in één regel
Sectie met titel “Reproduceerbaarheidsprofiel, in één regel”Elk recipe geeft het striktste profiel op dat het eerlijk kan waarmaken:
- bitwise — byte-identiek over uitvoeringen heen (eenvoudige deterministische inhoud met alle entropie vastgepind).
- structural — identiek na het normaliseren van vluchtige atomen (de trailer
/ID, creation/modification-datums, lettertype-subsetvoorvoegsels — in de praktijk elke PDF met meerdere objecten). - semantic — uitsluitend structurele AST plus metadata-equivalentie (ondertekende of van een tijdstempel voorziene uitvoer, of uitvoer waarvan de equivalentie inherent niet byte-stabiel is).
De recipepagina bewijst het profiel met het bijbehorende testharnas. Deze index rapporteert alleen de waarde die die pagina opgeeft.
Recepten die al worden geaggregeerd
Sectie met titel “Recepten die al worden geaggregeerd”De core-repository bevat en mergt deze vijf recipes vandaag al: de Wave 8-set.
| Recept | Wat het doet | Module | Profiel |
|---|---|---|---|
sign-pades (gepland upstream) | Een CMS/PAdES-baselinehandtekening toepassen met een softwaresleutel | Security | semantic |
encrypt-aes256 (gepland upstream) | Versleutelen met AES-256 en machtigingsvlaggen instellen | Security | structural |
pdfa4-conformance-gate (gepland upstream) | PDF/A-4-uitvoer produceren en deze laten afhangen van een externe validator | Conformance | semantic |
accessible-pdfua2-from-html (gepland upstream) | De getagde structuur uitsturen voor het maken van toegankelijke PDF/UA-2 | Accessibility | semantic |
validate-signature (gepland upstream) | Inspecteren of een PDF een handtekening bevat, inclusief de vertrouwensgrens | Inspect | semantic |
Fundamenten
Sectie met titel “Fundamenten”Een document opbouwen, pagineren en vormgeven.
| Recept | Wat het doet | Module | Profiel |
|---|---|---|---|
render-html-to-pdf (gepland upstream) | Een HTML-document naar PDF renderen | Html | structural |
style-with-css (gepland upstream) | CSS toepassen op een HTML-weergave | Html | structural |
html-table-layout (gepland upstream) | Een HTML-tabel opmaken | Html | structural |
paginate-long-html (gepland upstream) | Een lang HTML-document pagineren | Html | structural |
compose-text-and-fonts (gepland upstream) | Tekst samenstellen met controle over de typografie | Typography | structural |
embed-and-subset-fonts (gepland upstream) | Lettertypen insluiten en subsetten | Font | structural |
cjk-vertical-writing (gepland upstream) | CJK-tekst zetten in de verticale schrijfmodus | Typography | structural |
multi-page-document (gepland upstream) | Een document met meerdere pagina’s opbouwen | Document | structural |
headers-and-footers (gepland upstream) | Doorlopende kop- en voetteksten toevoegen | Layout | structural |
Afbeeldingen en inhoud
Sectie met titel “Afbeeldingen en inhoud”Werken met vectoren, afbeeldingen, lagen en de coördinatenruimte.
| Recept | Wat het doet | Module | Profiel |
|---|---|---|---|
draw-vector-graphics (gepland upstream) | Vectorafbeeldingen tekenen | Graphics | structural |
gradients-and-transparency (gepland upstream) | Verlopen en transparantie toepassen | Graphics | structural |
embed-images (gepland upstream) | Rasterafbeeldingen insluiten | Content | structural |
optional-content-layers (gepland upstream) | Optionele inhoud (lagen) gebruiken | Graphics | structural |
transform-coordinate-space (gepland upstream) | De coördinatenruimte transformeren | Graphics | structural |
Navigatie en formulieren
Sectie met titel “Navigatie en formulieren”Bladwijzers, koppelingen, annotaties en AcroForm-velden toevoegen.
| Recept | Wat het doet | Module | Profiel |
|---|---|---|---|
bookmarks-and-toc (gepland upstream) | Bladwijzers en een inhoudsopgave opbouwen | Navigation | structural |
links-and-annotations (gepland upstream) | Koppelingen en annotaties toevoegen | Navigation | structural |
generate-barcodes (gepland upstream) | Barcodes genereren | Barcode | bitwise |
fill-pdf-form (gepland upstream) | Een AcroForm invullen | Form | structural |
flatten-form-fields (gepland upstream) | Formuliervelden afvlakken | Form | structural |
Documentinformatie
Sectie met titel “Documentinformatie”Metadata en viewergedrag instellen.
| Recept | Wat het doet | Module | Profiel |
|---|---|---|---|
set-document-metadata (gepland upstream) | Documentmetadata instellen | Metadata | structural |
set-viewer-preferences (gepland upstream) | Viewervoorkeuren instellen | Document | structural |
Security, handtekening en conformiteit
Sectie met titel “Security, handtekening en conformiteit”Versleuteling, ondertekening, toegankelijkheid en profieluitvoer gebruiken. Deze recipes bewaken de grenzen support≠conformance en presence≠validity op de recipepagina.
| Recept | Wat het doet | Module | Profiel |
|---|---|---|---|
encrypt-with-permissions (gepland upstream) | Versleutelen met machtigingsvlaggen | Security | structural |
sign-pades-b-b (gepland upstream) | Een PAdES-handtekening toepassen (B-B en B-T) | Security | semantic |
inspect-existing-signature (gepland upstream) | Een bestaande handtekening inspecteren | Inspect | semantic |
tagged-pdf-ua2 (gepland upstream) | Getagde structuur uitsturen voor PDF/UA-2 | Accessibility | semantic |
pdf-a-4-output (gepland upstream) | PDF/A-4-uitvoer produceren | Conformance | semantic |
validate-conformance (gepland upstream) | Valideren tegen een conformiteitsprofiel | Compliance | semantic |
Inspectie en extractie
Sectie met titel “Inspectie en extractie”Inhoud en structuur uit een PDF uitlezen.
| Recept | Wat het doet | Module | Profiel |
|---|---|---|---|
extract-text-content (gepland upstream) | Tekstinhoud extraheren | Text | semantic |
parse-and-inspect-pdf (gepland upstream) | Een PDF parseren en inspecteren | Inspect | semantic |
inspect-layout-boxes (gepland upstream) | Lay-outvakken inspecteren | Inspect | semantic |
Overkoepelend
Sectie met titel “Overkoepelend”Patronen gebruiken die meerdere modules beslaan.
| Recept | Wat het doet | Beslaat | Profiel |
|---|---|---|---|
worker-safe-batch-rendering (gepland upstream) | Veilig renderen in een langlopende worker (gedeelde registers, begrensd geheugen) | Core · Performance · Support | semantic |
exception-aware-error-handling (gepland upstream) | Fouten afhandelen met de NextPDF-uitzonderingshiërarchie | Exception · Contracts | structural |
observe-with-opentelemetry (gepland upstream) | Het renderen observeren met OpenTelemetry | Observability · Telemetry · Event | semantic |
Recepten in afwachting van een uitvoerbaar voorbeeld
Sectie met titel “Recepten in afwachting van een uitvoerbaar voorbeeld”Deze recipes hebben een nieuw examples/*.php-bestand nodig plus een testharnas in tests/Cookbook/Php/ in de core-repository voordat ze kunnen worden gepubliceerd. De slug hierboven is definitief. De pagina blijft een plaatshouder totdat het voorbeeld landt en de bijbehorende test draait:
sign-pades-b-b(gepland upstream) (dekt PAdES B-B en B-T)inspect-existing-signature(gepland upstream)extract-text-content(gepland upstream)parse-and-inspect-pdf(gepland upstream)validate-conformance(gepland upstream)inspect-layout-boxes(gepland upstream)worker-safe-batch-rendering(gepland upstream) (voorbeeld bestaat; nieuwe geheugen-/GC-harnastest toegevoegd)observe-with-opentelemetry(gepland upstream) (nieuw PHP-native voorbeeld toegevoegd)
Elk ander recipe hierboven heeft al een ondersteunend examples/*.php-bestand en heeft alleen nog een wrapper voor het testharnas nodig. Deze index legt de slug en de uiteindelijke pagina vast. De index beweert niet dat een in afwachting zijnde pagina al voltooid is.
Zie ook
Sectie met titel “Zie ook”- Integratiecookbook — de index voor framework-, renderer- en service-integraties.
- Receptconventies — het contract dat elk uitvoerbaar recipe in dit cookbook volgt.