function SaveAsPdfUaToStream(Stream: TStream; const Options: TPdfUaSaveOptions): Boolean;
SaveAsPdfUaToStream ist das Streaming-Gegenstück zu
SaveAsPdfUa — sie erzeugt dieselbe PDF/UA-1-Ausgabe,
schreibt das Ergebnis aber in einen beliebigen, positionierbaren TStream,
den der Aufrufer bereitstellt
Nützlich für HTTP-Upload-Pipelines, BLOB-Spalten, In-Memory-Cache-
Schichten, Archivcontainer (ZIP / TAR) oder jeden Workflow, bei dem die
PDF/UA-Bytes nie die Festplatte berühren müssen
Die Nachbearbeitungslogik ist identisch mit
SaveAsPdfUa(FileName, Options): das zugrunde liegende SaveAs läuft
zuerst, dann injiziert ein inkrementelles Update den XMP-Metadaten-Stream
(mit obligatorischem dc:title gemäß ISO 14289-1 §7.1 und
der pdfuaid-Erweiterungs-Schema-Beschreibung), Katalog-
/MarkInfo und /ViewerPreferences, wenn die
Quelle keine enthält, Katalog-/Lang, wenn der Aufrufer
ein BCP 47-Tag geliefert hat, und ein Trailer-/ID-Array. Leergelassene Optionsfelder
werden automatisch aus den PDFium-Readern
(FPDF_GetMetaText, FPDF_GetFileIdentifier,
FPDFCatalog_GetLanguage) gefüllt, sodass der typische Aufrufer nur
bei Bedarf DocumentTitle oder Language setzt
Liefert True bei Erfolg. Der Ausgabe-Stream steht
an der Position nach dem letzten geschriebenen Byte. Liefert False,
wenn das zugrunde liegende SaveAs fehlschlug oder die Nachbearbeitung
nicht angehängt werden konnte (typischerweise eine verschlüsselte Quelle)
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;