function SaveAsPdfUaToStream(Stream: TStream; const Options: TPdfUaSaveOptions): Boolean;
SaveAsPdfUaToStream je protočni pandan metodi
SaveAsPdfUa — proizvodi isti PDF/UA-1 izlaz,
ali upisuje rezultat u bilo koji TStream sa podrškom za
pozicioniranje koji prosledi pozivalac. Korisno za tokove rada
HTTP otpremanja, BLOB kolone, slojeve keša u memoriji, arhivske
kontejnere (ZIP / TAR) ili bilo koji tok rada u kome PDF/UA
bajtovi nikada ne moraju da dodirnu disk
Logika post-procesiranja je identična metodi
SaveAsPdfUa(FileName, Options): prvo se izvodi osnovni
SaveAs, a zatim inkrementalna dopuna ubacuje XMP tok metapodataka
(sa obaveznim dc:title po ISO 14289-1 §7.1 i opisom
šeme ekstenzije pdfuaid), katalog /MarkInfo i
/ViewerPreferences kada ih izvor već nema, katalog
/Lang kada je pozivalac prosledio BCP 47 oznaku i niz
trailer /ID. Prazna polja Options se automatski
popunjavaju iz PDFium čitača (FPDF_GetMetaText,
FPDF_GetFileIdentifier, FPDFCatalog_GetLanguage)
tako da tipičan pozivalac po potrebi postavlja samo
DocumentTitle ili Language
Vraća True pri uspehu. Izlazni tok ostaje na poziciji
iza poslednjeg upisanog bajta. Vraća False ako osnovni
SaveAs nije uspeo ili ako post-procesiranje nije moglo da se
prikači (tipično šifrovani izvor)
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;