function SaveAsPdfXToStream(Stream: TStream; const Options: TPdfXSaveOptions): Boolean;
SaveAsPdfXToStream est le pendant de streaming de SaveAsPdfX — mêmes octets de sortie, écrits dans n’importe quel TStream positionnable fourni par l’appelant. Utile pour l’intégration de flux de travail de prépresse où les charges utiles PDF/X sont poussées directement dans les portails de soumission d’impression, les systèmes MIS / de billetterie de travaux, les colonnes BLOB, les conteneurs ZIP ou les pipelines de téléversement HTTP
Le post-traitement est identique à SaveAsPdfX : injection XMP avec l’identifiant pdfxid et la description de schéma d’extension, réécriture du dictionnaire Document Information avec GTS_PDFXVersion / GTS_PDFXConformance / Trapped, mise à jour du catalogue avec les références /Metadata et /OutputIntents, dictionnaire OutputIntent avec /S /GTS_PDFX et profil ICC intégré, et tableau /ID de trailer. Les champs d’options laissés vides sont auto-remplis depuis FPDF_GetMetaText / FPDF_GetFileIdentifier
Renvoie True après la sérialisation, en laissant le flux de sortie positionné après le dernier octet écrit
Renvoie False pour un document inactif ou une sauvegarde de base en échec ; un retour réussi ne constitue pas un verdict de conformité PDF/X complet
Pour pxc1a, fournissez dans Options.IccProfileData un profil de sortie ICC v2 prtr structurellement valide, avec des données CMYK, un PCS Lab ou XYZ et les LUT bidirectionnelles requises
Des données absentes ou inadaptées lèvent EArgumentException avant que le flux de destination ne soit modifié
PDF/X-1a remplace les libellés de condition de sortie encore égaux à la valeur par défaut sRGB intégrée par la description ICC vérifiée
Si cette description est absente, un OutputConditionIdentifier explicite, non vide et non par défaut, est requis et fournit le libellé de remplacement
Les libellés explicites sont préservés ; voir SaveAsPdfX pour les champs concernés
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;