function SaveAsPdfXToStream(Stream: TStream; const Options: TPdfXSaveOptions): Boolean;
SaveAsPdfXToStream is de streaming-tegenhanger van SaveAsPdfX — dezelfde uitvoerbytes, geschreven naar elke seekable TStream die de aanroeper aangeeft. Nuttig voor prepress-workflow-integratie waar PDF/X-payloads rechtstreeks naar druk-inzendingsportalen, MIS-/job-ticketing-systemen, BLOB-kolommen, ZIP-containers of HTTP-uploadpijplijnen worden gepusht
De nabewerking is identiek aan SaveAsPdfX: XMP-injectie met de pdfxid-identificatie en extensieschema-beschrijving, Document Information Dictionary-herschrijving met GTS_PDFXVersion / GTS_PDFXConformance / Trapped, catalogusupdate met /Metadata- en /OutputIntents-referenties, OutputIntent-woordenboek met /S /GTS_PDFX en ingebed ICC-profiel, en een trailer-/ID-array. Options-velden die leeg worden gelaten worden automatisch gevuld vanuit FPDF_GetMetaText / FPDF_GetFileIdentifier
Geeft True terug na de serialisatie en laat de uitvoerstroom achter op de positie na de laatst geschreven byte
Geeft False terug bij een inactief document of een gefaalde basis-save; een geslaagde terugkeer is geen eindoordeel over volledige PDF/X-conformiteit
Voor pxc1a levert u in Options.IccProfileData een structureel geldig ICC v2-prtr-output-profiel aan met CMYK-data, een Lab- of XYZ-PCS en de vereiste bidirectionele LUT's
Ontbrekende of ongeschikte data verhoogt EArgumentException voordat de doelstroom wordt gewijzigd
Voor PDF/X-1a worden output-condition-labels die nog gelijk zijn aan de ingebouwde sRGB-standaard vervangen door de gecontroleerde ICC-beschrijving
Ontbreekt die beschrijving, dan is een expliciete niet-lege, niet-standaard OutputConditionIdentifier vereist en levert die het vervangende label
Expliciete labels blijven behouden; zie SaveAsPdfX voor de betreffende velden
var
Stream: TMemoryStream;
Opts: TPdfXSaveOptions;
begin
Stream := TMemoryStream.Create;
try
Opts := TPdfXSaveOptions.Default;
Opts.Conformance := pxc4;
Opts.Title := 'Spring Catalogue 2026';
if Pdf1.SaveAsPdfXToStream(Stream, Opts) then
begin
Stream.Position := 0;
SubmitToPrinter(Stream);
end;
finally
Stream.Free;
end;
end;