function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean;
SaveAsPdfAToStream je tokovni dvojnik
SaveAsPdfA — ustvari isti izhod PDF/A-1b, vendar
rezultat zapiše v katerikoli iskalni TStream, ki ga poda klicatelj,
namesto prek začasne datoteke. Uporabno za cevovode nalaganja HTTP,
stolpce BLOB, plasti predpomnilnika v pomnilniku, arhivske vsebnike
(ZIP / TAR) ali katerikoli potek dela, kjer bajti PDF/A nikoli ne
potrebujejo dotika z diskom.
Logika naknadne obdelave je enaka
SaveAsPdfA(FileName, Options): najprej steče osnovni
SaveAs, nato posodobitev po vrsticah vbrizga tok metapodatkov XMP
(ki po ISO 19005-1 6.7.3 / Cor.1 Table 1 premosti Document
Information Dictionary v obliko XMP in vgradi opis razširitvene
sheme pdfaid, ki jo zahteva 6.7.8), OutputIntent s sklicom na vgrajen
profil ICC (privzeto sRGB, po meri prek
Options.IccProfileData), posodobitev kataloga, ki jih
poveže, ter polje trailer /ID, ki ga zahteva 6.1.3.
Prazna polja Options se samodejno napolnijo iz
FPDF_GetMetaText in FPDF_GetFileIdentifier,
tako da običajni klicatelj nastavi samo Conformance.
Ob uspehu vrne True. Izhodni tok ostane na položaju za
zadnjim zapisanim bajtom. Vrne False, če osnovni SaveAs
ni uspel ali naknadne obdelave PDF/A ni bilo mogoče pripeti
(tipično zato, ker je bil izvorni PDF šifriran, kar PDF/A
prepoveduje).
Write in Seek — deluje TMemoryStream, TFileStream ali katerikoli podrazred, ki spoštuje oboje.SaveAsPdfAToStream se ne ohranijo, če ima tok podatke za trenutnim položajem; funkcija ne predpostavlja semantike iskanja-do-konca.Memory + Size podajte odjemalcu HTTP neposredno.saRemoveSecurity.
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;