function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
SaveAsPdfEToStream ist das Streaming-Gegenstück zu
SaveAsPdfE — sie erzeugt dieselbe PDF/E-1-Ausgabe,
schreibt das Ergebnis aber in einen beliebigen, positionierbaren TStream,
den der Aufrufer bereitstellt
Nützlich für die Einbindung in Engineering-Workflows, bei denen PDF/E-Payloads
direkt in PLM-/PDM-Systeme, BLOB-Spalten, Archivcontainer
oder HTTP-Upload-Pipelines geschoben werden, ohne die Festplatte zu berühren
Die Nachbearbeitungslogik ist identisch mit
SaveAsPdfE(FileName, Options): das zugrunde liegende SaveAs läuft
zuerst, dann injiziert ein inkrementelles Update den XMP-Metadaten-Stream
(mit pdfe:ISO_PDFEVersion und der Erweiterungs-Schema-Beschreibung),
schreibt das Document Information Dictionary um, um den obligatorischen
/ISO_PDFEVersion (PDF/E-1)-Eintrag hinzuzufügen, aktualisiert den Katalog,
damit er auf das neue XMP verweist, und erzeugt einen Trailer mit einem frischen /ID-Array.
Leergelassene Optionsfelder werden automatisch aus den PDFium-Readern
(FPDF_GetMetaText, FPDF_GetFileIdentifier) gefüllt,
sodass ein typischer Aufrufer nur das Version-Feld für
nicht standardmäßige Part / Amd / Corr-Werte überschreiben muss
Liefert True bei Erfolg. Der Ausgabe-Stream steht
an der Position nach dem letzten geschriebenen Byte. Liefert False,
wenn das zugrunde liegende SaveAs fehlschlug oder die Nachbearbeitung
nicht angehängt werden konnte
/ISO_PDFEVersion hinzu. Vorhandene PDF/E-Versionswerte werden ersetzt
var
Stream: TMemoryStream;
Opts: TPdfESaveOptions;
begin
Stream := TMemoryStream.Create;
try
Opts := TPdfESaveOptions.Default;
Opts.Producer := 'CAD-Workflow 2026';
if Pdf1.SaveAsPdfEToStream(Stream, Opts) then
begin
Stream.Position := 0;
PushToPLM(Stream);
end;
finally
Stream.Free;
end;
end;