PDF/X-6 Authoring and Validation

HotPDF supports complete, externally profiled, and N-colourant PDF/X-6 exchange workflows over PDF 2.0

Profiles

PDFXComplianceTHPDFPDFX6ProfileOutput profile
'X-6'px6CompleteEmbedded ICC profile through DestOutputProfile
'X-6p'px6ExternalExternal gray, RGB, or CMYK ICC profile through DestOutputProfileRef
'X-6n'px6NChannelExternal N-colourant profile plus matching ColorantTable
Detected from the documentpx6AutomaticUses the producer setting or loaded XMP identification

Complete profile example

PDF.Version := pdf20;
PDF.PDFXCompliance := 'X-6';
PDF.Title := 'Press-ready artwork';
PDF.Trapped := 'False';
PDF.BeginDoc;
PDF.CurrentPage.SetTrimBox(0, 0,
  PDF.CurrentPage.Width, PDF.CurrentPage.Height);
PDF.AddPDFXOutputIntent('CGATS TR 001',
  'Document printing condition', ICCStream, 4, 'DeviceCMYK');
PDF.EndDoc;

EndDoc runs fail-closed validation for all three PDF/X-6 profiles before serialization

Output-intent scope

Page boxes

The validator resolves inherited MediaBox and CropBox, checks direct BleedBox, TrimBox, and ArtBox values, and requires exactly one finished-page box per page

Exchange constraints

One bounded graph traversal checks the profile identification and exchange structures while deduplicating shared resources by object identity

Versioned rules

THPDFPDFX6ValidationOptions.RuleSet selects the published ISO 15930-9:2020 rules or the same edition with resolved errata through 2025-11-11, with the resolved-errata set selected by default

HPDFPDFX6RuleSetRevision returns the stable revision label, and every THPDFPDFX6ValidationIssue carries both RuleSet and RuleRevision so stored diagnostics remain attributable when defaults evolve

Painted colour, overprint, and transparency

The validator interprets graphics state and resources at actual paint operators rather than treating colour selection as painted output

Bounded execution and caching

Object, issue, decoded-byte, content-work, recursion and graphics-state-stack ceilings fail closed with stable diagnostics before unbounded allocation, including members nested inside TJ arrays

Decoded content, ICC profiles, JPX header colour and Type 3 structure use indexed document-local caches with geometrically grown storage, while context-sensitive colour and transparency state is re-evaluated for every invocation

Structured diagnostics

ValidatePDFX6 returns THPDFPDFX6ValidationIssues, an array of THPDFPDFX6ValidationIssue records whose THPDFPDFX6IssueSeverity identifies warnings and errors

Each issue includes a stable code, standard clause, rule set, rule revision, object path, object number, zero-based page index, and message

THPDFPDFX6ValidationOptions independently bounds objects, issues, decoded bytes and content tokens and can isolate output-intent, page-box, exchange, font, annotation, painted-colour, overprint, or transparency checks

Related APIs