Automatische native XFA-PDF-Erzeugung

Unit: HPDFXFAHeadless

HPDFXFAWriteHeadlessPDF erzeugt ein frisches natives PDF direkt aus XDP-Bytes und einer von der Anwendung gelieferten TrueType-Schrift, ohne Eingabe-PDF oder vorbereitete Feld-Slots

Der Adapter konsumiert die bestehenden XFA-Binding-, wiederholte-Instanz- und Pagination-Layout-Callbacks und baut native Seiten- und AcroForm-Objektgraphen mit echten eingebetteten Schrift-Appearance-Streams

Text-, numerische, Date- und Passwortfelder, Push-Buttons, Combo- und List-Choices, Checkbox- und Radio-Gruppen, statischer Text sowie Rectangle-, Line-, Arc- und Inline-PNG- oder JPEG-Image-Draws werden konsumiert; Signaturen und zusätzliche Draw-Consumer erfordern weitere Adapter-Integration

Die Choice- und Boolean-Erzeugung bewahrt getrennte Anzeige- und Exportwerte, Editier- und Multi-Select-Verhalten, native Appearance-Zustände und unabhängige wiederholte Radio-Gruppen

Boolean-Styles und Captions konsumiert echte Vektor-Marker, Größe, Umrandungsfarben und -dicke, Unicode-Caption-Regionen und dritte Checkbox-Zustände

Native Grafiken und Bilder konsumiert echte Vektorpfade, PNG-Sample-Formate und Transparenz, Baseline- oder Progressive-JPEG, physischen Aspect und affine Platzierung

Passwörter nutzen eine maskierte Appearance und behalten den nativen Feldwert; dokumentweites Editable und effektiver XFA-readOnly-Zugriff bestimmen die nativen Feld-Flags

XFA-Punktkoordinaten nutzen einen Ursprung oben links und werden einmal in native Widget-Rechtecke und Draw-Translationen umgerechnet; getrennte wiederholte Vorkommen erhalten unterschiedliche native Feldnamen von der Layout-Engine

Native /AP-, /DR- und /DA-Ressourcen werden mit der gelieferten Schrift und effektiver Größe, Farbe und Ausrichtung erzeugt; das gelieferte Face wird für jedes Feld genutzt, daher sind Typeface-Auswahl und mehrere Style-Faces in dieser Stufe Sache der Anwendung

Nutze TXFAWidgetRuntime, um Lifecycle- oder Interaktionsereignisse auszuführen und das resultierende XDP vor der Erzeugung zu speichern, wenn das Dokument diese Ereignisse braucht; die ScriptOptions des Adapters steuern die calculate- und validate-Verarbeitung der Flatten-Engine

Vorbereitung und Limits

TXFAHeadlessPDFOptions begrenzt XDP- und Schriftbytes, Output- und Objektbytes, Objekt- und Seitenzahlen, Felder und aggregierte UTF-16-Glyphen-Einheiten

Objekt-, Seiten- und Glyphenbudgets werden vor den jeweiligen Allokationen geprüft; Embedding-Prüfungen begrenzen aggregierte Schrift- und Bildstreams, Bild-Decoder begrenzen ihre Arbeitspuffer, und die native Serialisierung erzwingt Objekt- und vollständige Kandidaten-Byte-Limits

Abbruch wird durchgehend bei Grapherzeugung, Appearance-Generierung und Serialisierung geprüft; alle Vorbereitungsfehler lassen Position, Länge und bestehende Bytes des Ziel-Streams unverändert

Der vollständige Kandidat wird im Speicher vorbereitet, bevor ein einziger WriteBuffer-Aufruf aufs Ziel erfolgt; Ziel-I/O-Fehler propagieren und können je nach Stream-Verhalten des Aufrufers partielle Schreibzugriffe hinterlassen

Der Output ist ein neues unsigniertes Dokument; die Bewahrung importierter Verschlüsselung, bestehender Signaturen und Quellrevisionen gehört zu den nativen Dokumentimport- und Revisions-APIs

Abnahme

Tests/Linux/XFAHeadlessCreationTests.pas erzeugt echte wiederholte, paginierte und global schreibgeschützte Dokumente, ein ereignismutiertes gespeichertes XDP-Dokument und ein gestyltes Unicode-Draw-Dokument, ohne eine Reader-UI zu öffnen

Tests/Linux/Verify-XFAHeadlessCreation.py verifiziert unabhängig native Werte, Feld-Flags, Seitenzugehörigkeit, /AP und eingebettete Schriftressourcen mit pypdf sowie echten Text und gerenderte Appearance-Pixel mit MuPDF

Tests/Linux/XFAHeadlessChoiceTests.pas und Verify-XFAHeadlessChoice.py ergänzen echte Choice-Werte und -Flags, Radio-Eltern und wiederholte Scope-Identitäten, reservierte Export-Zustände, Runtime-Speichern/Neuladen und Rollback sowie gerenderte Auswahl-Pixel

TXFAHeadlessPDFResult meldet den tatsächlichen nativen Graphen und Serialisierungszahlen