function SaveAsPdfEToStream(Stream: TStream; const Options: TPdfESaveOptions): Boolean;
SaveAsPdfEToStream همتای جریانیِ SaveAsPdfE است — همان خروجی PDF/E-1 را تولید میکند اما نتیجه را به هر TStream قابلجستوجویی که فراخواننده فراهم میکند مینویسد. برای یکپارچهسازی گردشکار مهندسی که محمولههای PDF/E مستقیم و بدون دستزدن به دیسک به سامانههای PLM / PDM، ستونهای BLOB، ظرفهای آرشیو یا خطوط لولهٔ بارگذاری HTTP فشار داده میشوند، کاربرد دارد
منطق پسپردازش با SaveAsPdfE(FileName, Options) یکسان است: ابتدا SaveAs پایه اجرا میشود، سپس یک بهروزرسانی افزاینده جریان فرادادهٔ XMP (با pdfe:ISO_PDFEVersion و توصیف طرحوارهٔ افزونه) را تزریق میکند، دیکشنری Information سند را برای افزودن مدخل الزامی /ISO_PDFEVersion (PDF/E-1) بازنویسی میکند، کاتالوگ را برای ارجاع به XMP جدید بهروزرسانی میکند و یک trailer با آرایهٔ /ID تازه گسیل میدهد. فیلدهای Options خالیمانده بهطور خودکار از خوانندههای PDFium (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;