function SaveAsPdfX(const FileName: string): Boolean; overload;
function SaveAsPdfX(const FileName: string; const Options: TPdfXSaveOptions): Boolean; overload;
SaveAsPdfX voert eerst de reguliere SaveAs uit en legt daarna een incrementele update bovenop de opgeslagen bytes voor de gekozen PDF/X-drukuitwisselingsvariant. De nabewerking injecteert vijf klassen bytes in de opgeslagen stroom:
pdfxid:GTS_PDFXVersion, plus pdfxid:GTS_PDFXConformance voor PDF/X-1a / PDF/X-3) plus de overeenkomstige pdfaExtension:schemas-beschrijving voor de pdfxid-naamruimte, en gebridgde Dublin Core / xmp / pdf-eigenschappen voor Title / Author / Producer / datums/GTS_PDFXVersion toevoegt, de optionele /GTS_PDFXConformance (alleen PDF/X-1a / PDF/X-3; PDF/X-4 deprecieert deze vermelding), en een /Trapped-naam (standaard /False). Bestaande Info-vermeldingen (Title / Author / Subject / enz.) worden behouden/Metadata N 0 R- en /OutputIntents [M 0 R]-referenties/Type /OutputIntent /S /GTS_PDFX en de geconfigureerde output-condition-vermeldingen, verwijzend naar een ingebed ICC-profiel via /DestOutputProfileDe trailer wordt herschreven om een /ID-array toe te voegen. De uitvoer blijft byte-identiek aan het basis-SaveAs-resultaat tot aan het einde van de originele PDF; alleen de incrementele update wordt toegevoegd. De twee overloads verschillen alleen in hoe de configuratie wordt doorgegeven: de alleen-bestandsnaam-vorm gebruikt TPdfXSaveOptions.Default (PDF/X-4 + sRGB + /Trapped /False) met auto-vulling van Info / DocumentId-velden vanuit FPDF_GetMetaText en FPDF_GetFileIdentifier
Geeft True terug nadat de voorbereide bytes zijn weggeschreven, of False wanneer het document inactief is of de basis-save faalt
Een geslaagde serialisatie betekent nog geen volledige PDF/X-conformiteit
Voor pxc1a moet IccProfileData een structureel geldig ICC v2-output-profiel bevatten met device class prtr, data color space CMYK, een Lab- of XYZ-PCS en de vereiste bidirectionele LUT's
Ontbrekende, RGB-, afgekapte, verkeerd geclassificeerde of niet-ondersteunde profieldata verhoogt EArgumentException; voor PDF/X-1a is er geen sRGB-fallback
Voor PDF/X-1a worden waarden van OutputCondition, OutputConditionIdentifier en OutputIntentInfo die nog gelijk zijn aan de ingebouwde sRGB IEC61966-2.1-standaard vervangen door de gecontroleerde profielbeschrijving
Heeft het profiel geen beschrijving, geef dan een niet-lege, niet-standaard OutputConditionIdentifier mee; die levert het vervangende label, of de aanroep verhoogt EArgumentException
Expliciete labels van de aanroeper blijven behouden
De serialisatie en deze profielcontroles lopen in een tijdelijke save-store af voordat het doelbestand om te schrijven wordt geopend Een bestaand doelbestand blijft daarom onveranderd wanneer de profielvalidatie een exceptie verhoogt of de basis-save faalt Dit is geen garantie voor atomaire bestandsvervanging: een I/O-fout nadat het doelbestand is geopend kan partiële uitvoer achterlaten
saRemoveSecurity vóór de marker-injectieOptions.Conformance toe maar kan deze inhoudsniveau-regels niet afdwingen. Bevestig via preflight
// Simple PDF/X-4 with bundled sRGB OutputIntent
if Pdf1.SaveAsPdfX('C:\AdProof.pdfx.pdf') then
ShowMessage('Saved PDF/X-4');
// PDF/X-1a with a custom CMYK ICC profile (e.g. 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;