PDFium Component Docs

SaveAsPdfX methode

Component: TPdf  ·  Unit: PDFium
Slaat een PDF/X-kandidaat op met identificatie-metadata en een ingebed output-profiel voor de gekozen ISO 15930-variant

Syntax

function SaveAsPdfX(const FileName: string): Boolean; overload;
function SaveAsPdfX(const FileName: string; const Options: TPdfXSaveOptions): Boolean; overload;

Description

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:

De 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

Remarks

Example

// 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;

See Also

SaveAsPdfXToStream, ValidatePdfX, PdfXConformance, SaveAsPdfA, SaveAsPdfE