HPDFXFAWriteHeadlessPDF
Unit: HPDFXFAHeadless
function HPDFXFAWriteHeadlessPDF(Destination: TStream;
const XDPBytes, TrueTypeFont: SysUtils.TBytes;
const Options: TXFAHeadlessPDFOptions;
Warnings: TStringList): TXFAHeadlessPDFResult;
Destination gehört dem Aufrufer und darf nicht nil sein; das vollständig aufbereitete Dokument wird an seiner aktuellen Position geschrieben, ohne bestehenden Inhalt zu truncaten
XDPBytes liefert Template, Datasets und optionalen persistierten Formularzustand; kein aufbereitetes Input-PDF ist nötig
Choice-Felder bewahren /Opt-Export-/Display-Paare und echte /V- und /I-Auswahlen; Boolean-Felder haben echte /AP-Zustände, und Radio-Members teilen sich einen Parent pro nativem Template- und Daten-Scope
Rectangle-, Line- und elliptische Arc-Draws erzeugen echte native Pfade; inline PNG- und JPEG-Image-Draws erzeugen native Image XObjects mit physischem Seitenverhältnis und Alpha-Masken, wie in Native graphics and images beschrieben
TrueTypeFont liefert die echte Face, die in Unicode-Appearance-Ressourcen eingebettet wird; der Aufrufer behält Array, Stream, Warnliste und Abbruch-Token
Options setzt physische Seitendimensionen, Editing-Policy, Skriptausführung und Ressourcenbudgets; Warnings darf nil sein, dann werden Warnungen temporär gesammelt und die zurückgegebene Warnungsreferenz ist nil
Graph-Aufbereitung, XML-Parsing, Appearance-Aufbau, Abbruch- und Kandidaten-Serialisierungsfehler lassen Destination unverändert; ein Destination-WriteBuffer-Fehler kann partielle Schreibvorgänge erzeugen und wird für beliebige Streams nicht zurückgerollt
Nicht unterstützte Consumer-Arten werfen derzeit EHPDFXFAHeadlessError während der Aufbereitung; unterstützte Arten und verbleibende Integrationsarbeit sind unter Automatic XFA creation aufgelistet
Options := TXFAHeadlessPDFOptions.Default;
Options.PageWidth := 300;
Options.PageHeight := 500;
Output := TMemoryStream.Create;
try
ResultInfo := HPDFXFAWriteHeadlessPDF(Output, SavedXDP, FontBytes,
Options, nil);
Output.SaveToFile('native-xfa.pdf');
finally
Output.Free;
end;
Das Speichern in einen Stream oder eine Datei startet keinen externen Reader und braucht keine Desktop-Session
Options und result counts liefern die vollständigen öffentlichen Record-Referenzen