function SaveAsPdfUaToStream(Stream: TStream; const Options: TPdfUaSaveOptions): Boolean;
SaveAsPdfUaToStream is de streaming-tegenhanger van SaveAsPdfUa — het produceert dezelfde PDF/UA-1-uitvoer maar schrijft het resultaat naar elke seekable TStream die de aanroeper aangeeft. Nuttig voor HTTP-uploadpijplijnen, BLOB-kolommen, in-geheugen-cache-lagen, archiefcontainers (ZIP / TAR) of elke workflow waar de PDF/UA-bytes nooit schijf hoeven te raken.
De nabewerkingslogica is identiek aan SaveAsPdfUa(FileName, Options): de basis-SaveAs draait eerst, waarna een incrementele update de XMP-metagegevensstroom injecteert (met verplichte dc:title per ISO 14289-1 §7.1 en de pdfuaid-extensieschema-beschrijving), catalogus-/MarkInfo en /ViewerPreferences wanneer de bron er geen heeft, catalogus-/Lang wanneer de aanroeper een BCP 47-tag aangeeft, en een trailer-/ID-array. Options-velden die leeg worden gelaten worden automatisch gevuld vanuit PDFium-readers (FPDF_GetMetaText, FPDF_GetFileIdentifier, FPDFCatalog_GetLanguage) zodat de typische aanroeper alleen DocumentTitle of Language instelt indien nodig.
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 (doorgaans een versleutelde bron).
saRemoveSecurity nodig
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;