function SaveAsPdfUaToStream(Stream: TStream; const Options: TPdfUaSaveOptions): Boolean;
SaveAsPdfUaToStream همتای جریانیِ SaveAsPdfUa است — همان خروجی PDF/UA-1 را تولید میکند اما نتیجه را به هر TStream قابلجستوجویی که فراخواننده فراهم میکند مینویسد. برای خطوط لولهٔ بارگذاری HTTP، ستونهای BLOB، لایههای حافظهٔ نهان درونحافظهای، ظرفهای آرشیو (ZIP / TAR) یا هر گردشکاری که بایتهای PDF/UA هرگز نیازی به دستزدن به دیسک ندارند کاربرد دارد
منطق پسپردازش با SaveAsPdfUa(FileName, Options) یکسان است: ابتدا SaveAs پایه اجرا میشود، سپس یک بهروزرسانی افزاینده جریان فرادادهٔ XMP (با dc:title الزامی طبق ISO 14289-1 §7.1 و توصیف طرحوارهٔ افزونهٔ pdfuaid)، /MarkInfo و /ViewerPreferences کاتالوگ وقتی منبع هیچکدام را ندارد، /Lang کاتالوگ وقتی فراخواننده برچسب BCP 47 داده باشد، و یک آرایهٔ /ID در trailer را تزریق میکند. فیلدهای Options خالیمانده بهطور خودکار از خوانندههای PDFium (FPDF_GetMetaText، FPDF_GetFileIdentifier، FPDFCatalog_GetLanguage) پر میشوند، پس فراخوانندهٔ معمولی در صورت نیاز تنها DocumentTitle یا Language را تنظیم میکند
در صورت موفقیت True برمیگرداند. جریان خروجی در جایگاه پس از آخرین بایت نوشتهشده باقی میماند. اگر SaveAs پایه شکست بخورد یا پسپردازش نتواند الحاق شود (معمولاً یک منبع رمزگذاریشده)، False برمیگرداند
saRemoveSecurity نیاز دارند
var
Stream: TMemoryStream;
Opts: TPdfUaSaveOptions;
begin
Stream := TMemoryStream.Create;
try
Opts := TPdfUaSaveOptions.Default;
Opts.DocumentTitle := 'Quarterly Report';
Opts.Language := 'en';
if Pdf1.SaveAsPdfUaToStream(Stream, Opts) then
begin
Stream.Position := 0;
UploadToArchive(Stream);
end;
finally
Stream.Free;
end;
end;