function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
SaveAsPdfEToStream 是 SaveAsPdfE 的串流對應版本,會產生相同的 PDF/E-1 輸出,但把結果寫入呼叫端提供的任何可搜尋串流。這很適合工程流程整合,例如把 PDF/E 負載直接送進 PLM / PDM 系統、BLOB 欄位、封存容器或 HTTP 上傳管線,而不用碰磁碟
後處理邏輯與 SaveAsPdfE(FileName, Options) 完全一致,會先執行基礎的 SaveAs,再透過增量更新注入 XMP metadata stream(包含 pdfe:ISO_PDFEVersion 與 extension schema description)、重寫 Document Information Dictionary 以加入必要的 /ISO_PDFEVersion (PDF/E-1) 項目、更新 catalog 參照新的 XMP,並輸出帶有新 /ID array 的 trailer。Options 中留白的欄位會由 PDFium readers(FPDF_GetMetaText、FPDF_GetFileIdentifier)自動補值,所以一般呼叫端通常只需要在非預設的 Part / Amd / Corr 值時覆寫 Version 欄位
成功時回傳 True。輸出串流會停在最後一個寫入位元組之後的位置。若基礎 SaveAs 失敗,或後處理無法附加,則回傳 False
/ISO_PDFEVersion,既有的 PDF/E 版本值會被取代
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;