SaveAsPdfE — schreibt die PDF/E-1-Ausgabe in jeden TStream, ohne über die Festplatte zu gehenfunction SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
SaveAsPdfEToStream ist das Streaming-Gegenstück zu
SaveAsPdfE — es erzeugt dieselbe PDF/E-1-Ausgabe,
schreibt das Ergebnis aber in jeden durchsuchbaren TStream,
den der Aufrufer bereitstellt. Nützlich für die Einbindung in
Engineering-Workflows, in denen PDF/E-Nutzdaten direkt in
PLM-/PDM-Systeme, BLOB-Spalten, Archivcontainer oder HTTP-Upload-
Pipelines geschoben werden, ohne die Festplatte zu berühren
Die Nachbearbeitungslogik ist identisch zu
SaveAsPdfE(FileName, Options): Zuerst läuft das Basis-
SaveAs, danach fügt ein inkrementelles Update den
XMP-Metadatenstrom (mit pdfe:ISO_PDFEVersion und der
Beschreibung des Erweiterungsschemas) ein, schreibt das Document
Information Dictionary um und ergänzt den erforderlichen
Eintrag /ISO_PDFEVersion (PDF/E-1), aktualisiert den
Katalog, damit er auf das neue XMP verweist, und erzeugt einen
Trailer mit frischem /ID-Array. Leere Optionsfelder
werden automatisch aus den PDFium-Lesern
(FPDF_GetMetaText, FPDF_GetFileIdentifier)
befüllt, sodass ein typischer Aufrufer nur das Version
Feld für nicht standardmäßige Part / Amd /
Corr-Werte überschreiben muss
Gibt bei Erfolg True zurück. Der Ausgabestream bleibt
an der Position nach dem zuletzt geschriebenen Byte. Gibt
False zurück, wenn das Basis-SaveAs
fehlschlägt oder die Nachbearbeitung nicht angehängt werden kann
SaveAsPdfE: Anforderungen auf Inhaltsebene für PDF/E (Schrifteinbettung, ToUnicode-CMaps, verbotene XObject- / ExtGState- / XFA-Nutzung) werden von dieser Methode nicht erzwungenProducer / CreationDate / ModDate / Title / Author / Subject / Keywords / Creator, falls vorhanden) und fügt nur /ISO_PDFEVersion hinzu. Vorhandene PDF/E-Versionen werden ersetztTMemoryStream für In-Memory-Pipelines; die resultierenden Bytes können direkt an einen Content-Store übergeben werden
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;