function SaveAsPdfAToStream(Stream: TStream; const Options: TPdfASaveOptions): Boolean;
SaveAsPdfAToStream er streaming-modstykket til
SaveAsPdfA — den frembringer det samme PDF/A-1b-output,
men skriver resultatet til enhver søgbar TStream som kalderen leverer
i stedet for at gå gennem en midlertidig fil. Nyttig til HTTP-upload-
pipelines, BLOB-kolonner, in-memory-cache-lag, arkiv-containere
(ZIP / TAR) eller enhver arbejdsgang hvor PDF/A-bytes aldrig behøver at
røre disk.
Efterbehandlings-logikken er identisk med
SaveAsPdfA(FileName, Options): basis-SaveAs kører
først, derefter injicerer en inkrementel opdatering XMP-metadata-streamen
(som brygger Document Information Dictionary over i XMP-form
per ISO 19005-1 6.7.3 / Cor.1 Table 1 og indlejrer pdfaid-
extension-schema-beskrivelsen krævet af 6.7.8), OutputIntent'en
der refererer en indlejret ICC-profil (sRGB som standard, tilpasset
gennem Options.IccProfileData), en katalogopdatering der
sammenkæder dem, og et trailer-/ID-array krævet
af 6.1.3. Options-felter der efterlades tomme auto-udfyldes fra
FPDF_GetMetaText og FPDF_GetFileIdentifier,
så den typiske kalder kun sætter Conformance.
Returnerer True ved succes. Output-streamen efterlades ved
positionen efter den sidste skrevne byte. Returnerer False,
hvis basis-SaveAs fejlede, eller hvis PDF/A-efterbehandlingen ikke kunne
vedhæftes (typisk fordi kilde-PDF'en var krypteret, hvilket
PDF/A forbyder).
Write og Seek — en TMemoryStream, TFileStream eller enhver subklasse der overholder begge virker.SaveAsPdfAToStream bevares ikke, hvis streamen har data forbi den aktuelle position; funktionen antager ikke seek-to-end-semantik.Memory + Size direkte til HTTP-klienten.saRemoveSecurity først.
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;