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