function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
SaveAsPdfEToStream is de streaming-tegenhanger van SaveAsPdfE — het produceert dezelfde PDF/E-1-uitvoer maar schrijft het resultaat naar elke seekable TStream die de aanroeper aangeeft. Nuttig voor engineering-workflow-integratie waar PDF/E-payloads rechtstreeks naar PLM-/PDM-systemen, BLOB-kolommen, archiefcontainers of HTTP-uploadpijplijnen worden gepusht zonder schijf te raken.
De nabewerkingslogica is identiek aan SaveAsPdfE(FileName, Options): de basis-SaveAs draait eerst, waarna een incrementele update de XMP-metagegevensstroom injecteert (met pdfe:ISO_PDFEVersion en de extensieschema-beschrijving), het Document Information Dictionary herschrijft om de verplichte vermelding /ISO_PDFEVersion (PDF/E-1) toe te voegen, de catalogus bijwerkt om naar de nieuwe XMP te verwijzen, en een trailer met een verse /ID-array emitteert. Options-velden die leeg worden gelaten worden automatisch gevuld vanuit PDFium-readers (FPDF_GetMetaText, FPDF_GetFileIdentifier), dus een typische aanroeper hoeft alleen het veld Version te overschrijven voor niet-standaard Part / Amd / Corr-waarden.
Retourneert True bij succes. De uitvoerstroom wordt achtergelaten op de positie na de laatst geschreven byte. Retourneert False als de basis-SaveAs faalde of als de nabewerking niet kon worden bijgevoegd.
/ISO_PDFEVersion toe. Bestaande PDF/E-versiewaarden worden vervangen.
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;