Ga naar inhoud

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.

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.

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.

De core-repository bevat en mergt deze vijf recipes vandaag al: de Wave 8-set.

ReceptWat het doetModuleProfiel
sign-pades (gepland upstream)Een CMS/PAdES-baselinehandtekening toepassen met een softwaresleutelSecuritysemantic
encrypt-aes256 (gepland upstream)Versleutelen met AES-256 en machtigingsvlaggen instellenSecuritystructural
pdfa4-conformance-gate (gepland upstream)PDF/A-4-uitvoer produceren en deze laten afhangen van een externe validatorConformancesemantic
accessible-pdfua2-from-html (gepland upstream)De getagde structuur uitsturen voor het maken van toegankelijke PDF/UA-2Accessibilitysemantic
validate-signature (gepland upstream)Inspecteren of een PDF een handtekening bevat, inclusief de vertrouwensgrensInspectsemantic

Een document opbouwen, pagineren en vormgeven.

ReceptWat het doetModuleProfiel
render-html-to-pdf (gepland upstream)Een HTML-document naar PDF renderenHtmlstructural
style-with-css (gepland upstream)CSS toepassen op een HTML-weergaveHtmlstructural
html-table-layout (gepland upstream)Een HTML-tabel opmakenHtmlstructural
paginate-long-html (gepland upstream)Een lang HTML-document paginerenHtmlstructural
compose-text-and-fonts (gepland upstream)Tekst samenstellen met controle over de typografieTypographystructural
embed-and-subset-fonts (gepland upstream)Lettertypen insluiten en subsettenFontstructural
cjk-vertical-writing (gepland upstream)CJK-tekst zetten in de verticale schrijfmodusTypographystructural
multi-page-document (gepland upstream)Een document met meerdere pagina’s opbouwenDocumentstructural
headers-and-footers (gepland upstream)Doorlopende kop- en voetteksten toevoegenLayoutstructural

Werken met vectoren, afbeeldingen, lagen en de coördinatenruimte.

ReceptWat het doetModuleProfiel
draw-vector-graphics (gepland upstream)Vectorafbeeldingen tekenenGraphicsstructural
gradients-and-transparency (gepland upstream)Verlopen en transparantie toepassenGraphicsstructural
embed-images (gepland upstream)Rasterafbeeldingen insluitenContentstructural
optional-content-layers (gepland upstream)Optionele inhoud (lagen) gebruikenGraphicsstructural
transform-coordinate-space (gepland upstream)De coördinatenruimte transformerenGraphicsstructural

Bladwijzers, koppelingen, annotaties en AcroForm-velden toevoegen.

ReceptWat het doetModuleProfiel
bookmarks-and-toc (gepland upstream)Bladwijzers en een inhoudsopgave opbouwenNavigationstructural
links-and-annotations (gepland upstream)Koppelingen en annotaties toevoegenNavigationstructural
generate-barcodes (gepland upstream)Barcodes genererenBarcodebitwise
fill-pdf-form (gepland upstream)Een AcroForm invullenFormstructural
flatten-form-fields (gepland upstream)Formuliervelden afvlakkenFormstructural

Metadata en viewergedrag instellen.

ReceptWat het doetModuleProfiel
set-document-metadata (gepland upstream)Documentmetadata instellenMetadatastructural
set-viewer-preferences (gepland upstream)Viewervoorkeuren instellenDocumentstructural

Versleuteling, ondertekening, toegankelijkheid en profieluitvoer gebruiken. Deze recipes bewaken de grenzen support≠conformance en presence≠validity op de recipepagina.

ReceptWat het doetModuleProfiel
encrypt-with-permissions (gepland upstream)Versleutelen met machtigingsvlaggenSecuritystructural
sign-pades-b-b (gepland upstream)Een PAdES-handtekening toepassen (B-B en B-T)Securitysemantic
inspect-existing-signature (gepland upstream)Een bestaande handtekening inspecterenInspectsemantic
tagged-pdf-ua2 (gepland upstream)Getagde structuur uitsturen voor PDF/UA-2Accessibilitysemantic
pdf-a-4-output (gepland upstream)PDF/A-4-uitvoer producerenConformancesemantic
validate-conformance (gepland upstream)Valideren tegen een conformiteitsprofielCompliancesemantic

Inhoud en structuur uit een PDF uitlezen.

ReceptWat het doetModuleProfiel
extract-text-content (gepland upstream)Tekstinhoud extraherenTextsemantic
parse-and-inspect-pdf (gepland upstream)Een PDF parseren en inspecterenInspectsemantic
inspect-layout-boxes (gepland upstream)Lay-outvakken inspecterenInspectsemantic

Patronen gebruiken die meerdere modules beslaan.

ReceptWat het doetBeslaatProfiel
worker-safe-batch-rendering (gepland upstream)Veilig renderen in een langlopende worker (gedeelde registers, begrensd geheugen)Core · Performance · Supportsemantic
exception-aware-error-handling (gepland upstream)Fouten afhandelen met de NextPDF-uitzonderingshiërarchieException · Contractsstructural
observe-with-opentelemetry (gepland upstream)Het renderen observeren met OpenTelemetryObservability · Telemetry · Eventsemantic

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.