function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean;
SaveAsPdfAToStream, SaveAsPdfA'nın akış karşılığıdır —
aynı PDF/A-1b çıktısını üretir, ancak sonucu geçici bir dosya üzerinden
gitmek yerine çağıranın sağladığı aranabilir herhangi bir TStream'e yazar.
PDF/A baytlarının hiçbir zaman diske dokunması gerekmeyen HTTP yükleme
işlem hatları, BLOB sütunları, bellek içi önbellek katmanları, arşiv
kapsayıcıları (ZIP / TAR) veya herhangi bir iş akışı için kullanışlıdır.
Son işleme mantığı SaveAsPdfA(FileName, Options) ile
aynıdır: önce temel SaveAs çalışır, ardından artımlı bir güncelleme XMP
meta veri akışını (ISO 19005-1 6.7.3 / Cor.1 Tablo 1'e göre Belge Bilgi
Sözlüğünü XMP biçimine köprüler ve 6.7.8'in gerektirdiği pdfaid uzantı
şeması açıklamasını gömer), gömülü bir ICC profilini (varsayılan sRGB,
Options.IccProfileData ile özel) başvuran OutputIntent'i,
bunları birbirine bağlayan bir katalog güncellemesini ve 6.1.3'ün
gerektirdiği bir trailer /ID dizisini enjekte eder. Boş
bırakılan Options alanları FPDF_GetMetaText ve
FPDF_GetFileIdentifier'dan otomatik olarak doldurulur;
böylece tipik çağıran yalnızca Conformance değerini ayarlar.
Başarı durumunda True döndürür. Çıktı akışı, yazılan son
bayttan sonraki konumda bırakılır. Temel SaveAs başarısız olursa veya
PDF/A son işlemesi eklenemezse (genellikle kaynak PDF şifreli olduğundan
ve PDF/A bunu yasakladığından) False döndürür.
Write ve Seek desteklemesi gerekir — TMemoryStream, TFileStream veya ikisini de uygulayan herhangi bir alt sınıf çalışır.SaveAsPdfAToStream öncesi akım içerikleri korunmaz; işlev sona arama semantiği varsaymaz.Memory + Size değerlerini doğrudan HTTP istemcisine geçirin.saRemoveSecurity gerektirir.
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;