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 メタデータストリーム(ISO 14289-1 §7.1 に従う必須の dc:title と pdfuaid 拡張スキーマ記述)、ソースにないときのカタログ /MarkInfo と /ViewerPreferences、呼び出し側が BCP 47 タグを供給したときのカタログ /Lang、トレーラー /ID 配列を注入します。空のままの 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;