PHP-Kochbuch
PHP-Kochbuch
Abschnitt betitelt „PHP-Kochbuch“Dies ist das Verzeichnis für PHP-native NextPDF-Rezepte — aufgabenorientierte, ausführbare Seiten, die direkt für die Core-PHP-API geschrieben sind. Das nextpdf-Core-Repository verantwortet und verifiziert jedes Rezept unter docs/public/cookbook/php/. Jedes Rezept wird durch ein examples/*.php-Skript und einen tests/Cookbook/Php/-Harness-Test abgesichert. Der Aggregator übernimmt dann jede Seite in diese Site und führt ihre Quellherkunft mit.
Da diese Seite ein Verzeichnis ist, macht sie keine Verhaltensaussage über einzelne Rezepte. Jede Zeile nennt den Zweck des Rezepts, das Core-Modul, das es nutzt, und sein deklariertes Reproduzierbarkeitsprofil. Das Profil und jede Konformitätsaussage stehen auf der Rezeptseite selbst, gespeist aus dem Front-Matter der jeweiligen Seite und ihrem Test im Repository — nicht hier. Das Integrations-Kochbuch für Framework, Renderer und Dienst finden Sie unter Integrations-Kochbuch. Den Vertrag, dem jedes ausführbare Rezept folgt, finden Sie unter Rezeptkonventionen.
Wie ein Rezeptlink aufgelöst wird
Abschnitt betitelt „Wie ein Rezeptlink aufgelöst wird“Jedes [[…]] unten ist eine Vorwärtsreferenz auf eine Seite, die im Core-Repository unter docs/public/cookbook/php/ verfasst und anschließend vom Aggregator in diese Site übernommen wird. Der Slug folgt der Konvention eines einzelnen Segments.
/cookbook/php/<recipe>/<recipe> bezeichnet den Zweck des Rezepts in Kebab-Case (zum Beispiel render-html-to-pdf, nicht den Modulnamen html). Er ist durchgängig kleingeschrieben, durch Bindestriche getrennt, frei von Versionsnummern und endet auf einem einzigen abschließenden Schrägstrich. Bis eine Zielseite aggregiert ist, bleibt ihr Link ein Platzhalter und wird nicht aufgelöst. Ein Rezept ohne ausführbares Beispiel (die Lückenliste unten) kann nicht veröffentlicht werden, bis sein Beispiel und sein Harness-Test existieren, auch wenn der Link bereits auf den künftigen Slug zeigt.
Reproduzierbarkeitsprofil in einer Zeile
Abschnitt betitelt „Reproduzierbarkeitsprofil in einer Zeile“Jedes Rezept deklariert das strengste Profil, das es ehrlich erfüllen kann:
- bitweise — byte-identisch über alle Durchläufe hinweg (rein deterministischer Inhalt, jede Entropie fixiert).
- strukturell — identisch nach Normalisierung flüchtiger Atome (das Trailer-
/ID, creation/modification-Daten, Font-Subset-Präfixe — in der Praxis jedes PDF mit mehreren Objekten). - semantisch — nur Äquivalenz des Struktur-AST plus Metadaten (signierte oder mit Zeitstempel versehene Ausgabe oder Ausgabe, deren Äquivalenz von Natur aus nicht byte-stabil ist).
Das Profil ist eine Eigenschaft, die die Rezeptseite durch ihren Harness-Test belegt. Dieses Verzeichnis meldet nur den Wert, den die Seite deklariert.
Bereits aggregierte Rezepte
Abschnitt betitelt „Bereits aggregierte Rezepte“Im Core-Repository liegen diese fünf Rezepte bereits heute vor und sind zusammengeführt — der Wave-8-Satz.
| Rezept | Was es tut | Modul | Profil |
|---|---|---|---|
sign-pades (geplant im Upstream) | Eine CMS/PAdES-Baseline-Signatur mit einem Softwareschlüssel anwenden | Security | semantisch |
encrypt-aes256 (geplant im Upstream) | Mit AES-256 verschlüsseln und Berechtigungsflags setzen | Security | strukturell |
pdfa4-conformance-gate (geplant im Upstream) | PDF/A-4-Ausgabe erzeugen und mit einem externen Validator absichern | Conformance | semantisch |
accessible-pdfua2-from-html (geplant im Upstream) | Die getaggte Struktur für barrierefreies PDF/UA-2-Authoring ausgeben | Accessibility | semantisch |
validate-signature (geplant im Upstream) | Prüfen, ob ein PDF eine Signatur enthält, und die Vertrauensgrenze prüfen | Inspect | semantisch |
Grundlagen
Abschnitt betitelt „Grundlagen“Ein Dokument aufbauen, paginieren und gestalten.
| Rezept | Was es tut | Modul | Profil |
|---|---|---|---|
render-html-to-pdf (geplant im Upstream) | Ein HTML-Dokument in PDF rendern | Html | strukturell |
style-with-css (geplant im Upstream) | CSS auf ein HTML-Rendering anwenden | Html | strukturell |
html-table-layout (geplant im Upstream) | Eine HTML-Tabelle layouten | Html | strukturell |
paginate-long-html (geplant im Upstream) | Ein langes HTML-Dokument paginieren | Html | strukturell |
compose-text-and-fonts (geplant im Upstream) | Text mit Typografie-Kontrolle setzen | Typography | strukturell |
embed-and-subset-fonts (geplant im Upstream) | Schriften einbetten und subsetten | Font | strukturell |
cjk-vertical-writing (geplant im Upstream) | CJK-Text im vertikalen Schreibmodus setzen | Typography | strukturell |
multi-page-document (geplant im Upstream) | Ein mehrseitiges Dokument aufbauen | Document | strukturell |
headers-and-footers (geplant im Upstream) | Laufende Kopf- und Fußzeilen hinzufügen | Layout | strukturell |
Grafik und Inhalt
Abschnitt betitelt „Grafik und Inhalt“Vektoren, Bilder, Ebenen und Koordinatenraum.
| Rezept | Was es tut | Modul | Profil |
|---|---|---|---|
draw-vector-graphics (geplant im Upstream) | Vektorgrafiken zeichnen | Graphics | strukturell |
gradients-and-transparency (geplant im Upstream) | Verläufe und Transparenz anwenden | Graphics | strukturell |
embed-images (geplant im Upstream) | Rasterbilder einbetten | Content | strukturell |
optional-content-layers (geplant im Upstream) | Optionalen Inhalt (Ebenen) verwenden | Graphics | strukturell |
transform-coordinate-space (geplant im Upstream) | Den Koordinatenraum transformieren | Graphics | strukturell |
Navigation und Formulare
Abschnitt betitelt „Navigation und Formulare“Lesezeichen, Links, Anmerkungen und AcroForm-Felder.
| Rezept | Was es tut | Modul | Profil |
|---|---|---|---|
bookmarks-and-toc (geplant im Upstream) | Lesezeichen und ein Inhaltsverzeichnis aufbauen | Navigation | strukturell |
links-and-annotations (geplant im Upstream) | Links und Anmerkungen hinzufügen | Navigation | strukturell |
generate-barcodes (geplant im Upstream) | Barcodes generieren | Barcode | bitweise |
fill-pdf-form (geplant im Upstream) | Ein AcroForm ausfüllen | Form | strukturell |
flatten-form-fields (geplant im Upstream) | Formularfelder abflachen | Form | strukturell |
Dokumentinformationen
Abschnitt betitelt „Dokumentinformationen“Metadaten und Viewer-Verhalten festlegen.
| Rezept | Was es tut | Modul | Profil |
|---|---|---|---|
set-document-metadata (geplant im Upstream) | Dokumentmetadaten festlegen | Metadata | strukturell |
set-viewer-preferences (geplant im Upstream) | Viewer-Einstellungen festlegen | Document | strukturell |
Security, Signatur und Konformität
Abschnitt betitelt „Security, Signatur und Konformität“Verschlüsselung, Signierung, Barrierefreiheit und Profilausgabe. Diese Rezepte machen die Grenzen Unterstützung≠Konformität und Vorhandensein≠Gültigkeit auf der jeweiligen Rezeptseite deutlich.
| Rezept | Was es tut | Modul | Profil |
|---|---|---|---|
encrypt-with-permissions (geplant im Upstream) | Mit Berechtigungsflags verschlüsseln | Security | strukturell |
sign-pades-b-b (geplant im Upstream) | Eine PAdES-Signatur anwenden (B-B und B-T) | Security | semantisch |
inspect-existing-signature (geplant im Upstream) | Eine vorhandene Signatur prüfen | Inspect | semantisch |
tagged-pdf-ua2 (geplant im Upstream) | Getaggte Struktur für PDF/UA-2 ausgeben | Accessibility | semantisch |
pdf-a-4-output (geplant im Upstream) | PDF/A-4-Ausgabe erzeugen | Conformance | semantisch |
validate-conformance (geplant im Upstream) | Gegen ein Konformitätsprofil validieren | Compliance | semantisch |
Inspektion und Extraktion
Abschnitt betitelt „Inspektion und Extraktion“Inhalt und Struktur aus einem PDF auslesen.
| Rezept | Was es tut | Modul | Profil |
|---|---|---|---|
extract-text-content (geplant im Upstream) | Textinhalt extrahieren | Text | semantisch |
parse-and-inspect-pdf (geplant im Upstream) | Ein PDF parsen und inspizieren | Inspect | semantisch |
inspect-layout-boxes (geplant im Upstream) | Layout-Boxen inspizieren | Inspect | semantisch |
Querschnittsthemen
Abschnitt betitelt „Querschnittsthemen“Muster, die sich über mehrere Module erstrecken.
| Rezept | Was es tut | Umfasst | Profil |
|---|---|---|---|
worker-safe-batch-rendering (geplant im Upstream) | Sicher in einem langlaufenden Worker rendern (gemeinsame Registries, begrenzter Speicher) | Core · Performance · Support | semantisch |
exception-aware-error-handling (geplant im Upstream) | Fehler mit der NextPDF-Ausnahmehierarchie behandeln | Exception · Contracts | strukturell |
observe-with-opentelemetry (geplant im Upstream) | Rendering mit OpenTelemetry beobachten | Observability · Telemetry · Event | semantisch |
Rezepte, die noch auf ein ausführbares Beispiel warten
Abschnitt betitelt „Rezepte, die noch auf ein ausführbares Beispiel warten“Diese Rezepte brauchen ein vollständig neues examples/*.php sowie einen tests/Cookbook/Php/-Harness im Core-Repository, bevor sie veröffentlicht werden können. Der Slug oben ist endgültig. Die Seite bleibt ein Platzhalter, bis das Beispiel vorhanden ist und sein Test läuft:
sign-pades-b-b(geplant im Upstream) (deckt PAdES B-B und B-T ab)inspect-existing-signature(geplant im Upstream)extract-text-content(geplant im Upstream)parse-and-inspect-pdf(geplant im Upstream)validate-conformance(geplant im Upstream)inspect-layout-boxes(geplant im Upstream)worker-safe-batch-rendering(geplant im Upstream) (Beispiel existiert; neuer Memory-/GC-Harness-Test hinzugefügt)observe-with-opentelemetry(geplant im Upstream) (neues PHP-natives Beispiel hinzugefügt)
Alle anderen oben aufgeführten Rezepte haben bereits ein unterstützendes examples/*.php und brauchen nur einen Harness-Wrapper. Dieses Verzeichnis nennt den Slug und die künftige Seite. Es behauptet nicht, dass eine ausstehende Seite bereits fertig ist.
Siehe auch
Abschnitt betitelt „Siehe auch“- Integrations-Kochbuch — das Integrationsverzeichnis für Framework, Renderer und Dienste.
- Rezeptkonventionen — der Vertrag, dem jedes ausführbare Rezept in diesem Kochbuch folgt.