function SaveAsPdfX(const FileName: string): Boolean; overload;
function SaveAsPdfX(const FileName: string; const Options: TPdfXSaveOptions): Boolean; overload;
SaveAsPdfX exécute d'abord SaveAs, puis superpose une mise à jour incrémentielle sur les octets enregistrés afin de promouvoir le fichier vers la conformité PDF/X — la famille ISO 15930 des normes d'échange d'impression utilisées dans l'industrie des arts graphiques. Le post-traitement injecte cinq classes d'octets dans le flux enregistré :
pdfxid:GTS_PDFXVersion, plus pdfxid:GTS_PDFXConformance pour PDF/X-1a / PDF/X-3) ainsi que la description pdfaExtension:schemas correspondante pour l'espace de noms pdfxid, et les propriétés Dublin Core / xmp / pdf relayées pour Title / Author / Producer / dates/GTS_PDFXVersion obligatoire, le /GTS_PDFXConformance facultatif (PDF/X-1a / PDF/X-3 uniquement ; PDF/X-4 déprécie cette entrée) et un nom /Trapped (par défaut /False). Les entrées Info existantes (Title / Author / Subject / etc.) sont préservées/Metadata N 0 R et /OutputIntents [M 0 R]/Type /OutputIntent /S /GTS_PDFX et les entrées /OutputCondition / /OutputConditionIdentifier / /RegistryName / /Info requises, référençant un profil ICC incorporé via /DestOutputProfileOptions.IccProfileData pour l'impression commerciale)Le trailer est réécrit pour ajouter un tableau /ID. La sortie reste octet pour octet identique au résultat de base de SaveAs jusqu'à la fin du PDF original ; seule la mise à jour incrémentielle est ajoutée. Les deux surcharges ne diffèrent que par la façon dont la configuration est transmise : la forme réservée au nom de fichier utilise TPdfXSaveOptions.Default (PDF/X-4 + sRGB + /Trapped /False) avec remplissage automatique des champs Info / DocumentId à partir de FPDF_GetMetaText et FPDF_GetFileIdentifier
Renvoie True en cas de succès. Renvoie False si SaveAs de base a échoué ou si la mise à jour incrémentielle n'a pas pu être attachée
Options.IccProfileData avec les octets ICC correspondant à la caractérisation presse cible (FOGRA39, ISO Coated v2, GRACoL2006_Coated1v2, JapanColor2011Coated, etc.) et mettez à jour OutputConditionIdentifier / RegistryName / OutputIntentInfo en conséquenceSaveAs(..., saRemoveSecurity) sur les sources chiffrées avant SaveAsPdfXOptions.Conformance mais ne peut pas imposer ces règles au niveau du contenu. Vérifiez via preflight
// PDF/X-4 simple avec l'OutputIntent sRGB fourni
if Pdf1.SaveAsPdfX('C:\AdProof.pdfx.pdf') then
ShowMessage('Saved PDF/X-4');
// PDF/X-1a avec un profil ICC CMYK personnalisé (par exemple FOGRA39)
var
Opts: TPdfXSaveOptions;
begin
Opts := TPdfXSaveOptions.Default;
Opts.Conformance := pxc1a;
Opts.IccProfileData := TFile.ReadAllBytes('C:\ICC\FOGRA39.icc');
Opts.OutputCondition := 'Coated FOGRA39 (ISO 12647-2:2004)';
Opts.OutputConditionIdentifier:= 'FOGRA39';
Opts.RegistryName := 'http://www.color.org';
Opts.Trapped := ptFalse;
Pdf1.SaveAsPdfX('C:\AdProof.cmyk.pdfx.pdf', Opts);
end;