function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean;
SaveAsPdfAToStream tokovni je pandan metodi
SaveAsPdfA — proizvodi isti PDF/A-1b izlaz,
ali rezultat zapisuje u bilo koji traživi TStream koji dostavi
pozivatelj umjesto preko privremene datoteke. Korisno za cjevovode
HTTP prijenosa, BLOB stupce, slojeve predmemorije u memoriji,
arhivske spremnike (ZIP / TAR) ili bilo koji tok rada u kojem
PDF/A bajtovi nikada ne moraju dirati disk
Logika naknadne obrade identična je
SaveAsPdfA(FileName, Options): najprije se izvodi
osnovni SaveAs, zatim inkrementalno ažuriranje ubacuje XMP tok
metapodataka (koji premošćuje Document Information Dictionary u
XMP oblik prema ISO 19005-1 6.7.3 / Cor.1 Table 1 i ugrađuje opis
sheme proširenja pdfaid potreban prema 6.7.8), OutputIntent
koji referencira ugrađeni ICC profil (sRGB prema zadanim,
prilagođen putem Options.IccProfileData), ažuriranje
kataloga koje ih povezuje te niz /ID u traileru
potreban prema 6.1.3. Polja Options ostavljena praznima automatski
se popunjavaju iz FPDF_GetMetaText i
FPDF_GetFileIdentifier pa tipičan pozivatelj postavlja
samo Conformance
Vraća True pri uspjehu. Izlazni tok ostaje na
poziciji nakon zadnjeg zapisanog bajta. Vraća False
ako osnovni SaveAs nije uspio ili ako PDF/A naknadna obrada nije
mogla biti priložena (tipično zato što je izvorni PDF bio
šifriran, što PDF/A zabranjuje)
Write i Seek — TMemoryStream, TFileStream ili bilo koja podklasa koja poštuje obje radiSaveAsPdfAToStream ne čuva se ako tok ima podatke iza trenutne pozicije; funkcija ne pretpostavlja semantiku pozicioniranja na krajMemory + Size izravno HTTP klijentusaRemoveSecurity
var
Stream: TMemoryStream;
Opts: TPdfASaveOptions;
begin
Stream := TMemoryStream.Create;
try
Opts := Default(TPdfASaveOptions);
Opts.Conformance := pac1b;
if Pdf1.SaveAsPdfAToStream(Stream, Opts) then
begin
Stream.Position := 0;
UploadToArchive(Stream);
end;
finally
Stream.Free;
end;
end;