PDF/X-6 撰寫與驗證
HotPDF 在 PDF 2.0 之上支援完整版、外部設定檔與 N 色料版的 PDF/X-6 交換流程
設定檔
PDFXCompliance | THPDFPDFX6Profile | 輸出設定檔 |
|---|---|---|
'X-6' | px6Complete | 透過 DestOutputProfile 內嵌 ICC 設定檔 |
'X-6p' | px6External | 透過 DestOutputProfileRef 使用外部灰階、RGB 或 CMYK ICC 設定檔 |
'X-6n' | px6NChannel | 外部 N 色料設定檔加上相符的 ColorantTable |
| 從文件偵測 | px6Automatic | 使用產生端設定或已載入的 XMP 識別 |
完整設定檔範例
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 在序列化之前對全部三種 PDF/X-6 設定檔執行失敗即關閉的驗證
輸出意向範圍
AddPDFXOutputIntent為完整設定檔加入一個內嵌的 Catalog 層級設定檔AddPDFX6PageOutputIntent把內嵌設定檔加到單一頁面AddPDFX6ExternalOutputIntent以PageIndex=-1在 Catalog 範圍、或以零基索引在頁面範圍加入外部設定檔參照- 頁面層級的
OutputIntents陣列會為該頁覆蓋 Catalog 陣列 - 每個生效範圍必須恰好包含一個 PDF/X 意向
頁面框
驗證器解析繼承的 MediaBox 與 CropBox、檢查直接的 BleedBox、TrimBox 與 ArtBox 值,並要求每頁恰好一個成品頁面框
- 每個矩形都必須包含四個有限的有序座標
CropBox、BleedBox與成品頁面框必須落在MediaBox之內TrimBox與ArtBox互斥
交換約束
一次有界的圖形遍歷檢查設定檔識別與交換結構,同時依物件身分對共享資源去重
- PDF 2.0 標頭、XMP 設定檔標記、日期、標題、trapped 狀態、trailer ID 與未加密
- 動作類型、動作鏈、目的地陣列、AcroForm 狀態與欄位附加動作
- 可列印的可見註解需有固定的正常外觀,且不得為 PrinterMark 或 TrapNet 子類型
- 內嵌字型程式、Type 0 後代、圖形狀態值的型別與範圍,以及資源 XObject
- 不允許的頁面生產步驟資料,以及替代呈現或檢視器偏好類的 Catalog 資料
版本化規則
THPDFPDFX6ValidationOptions.RuleSet 可選擇已發布的 ISO 15930-9:2020 規則,或同一版含 2025-11-11 前已決議勘誤的版本,預設採用已決議勘誤集
HPDFPDFX6RuleSetRevision 回傳穩定的修訂標籤,每個 THPDFPDFX6ValidationIssue 都帶有 RuleSet 與 RuleRevision,預設值演進時已儲存的診斷仍可追溯
著色、疊印與透明
驗證器在實際著色運算子處解讀圖形狀態與資源,而不是把色彩選擇當成已著色的輸出
- 內容串流陣列共用同一個
q與Q堆疊,每個 Form XObject 則在呼叫點套用其資源、矩陣、透明群組與混合色彩空間 - 路徑、文字、影像、影像遮罩、漸變、平鋪與漸變圖樣、Type 3 字形 CharProcs、軟遮罩群組與註解外觀,都透過各自生效的資源字典遍歷
- 空路徑、不可見或僅用於裁切的文字以及未使用的 Type 3 字形,不會產生著色發現
- ICCBased、CalGray、CalRGB、Lab、Indexed、Pattern、Separation、DeviceN 與 NChannel 定義在著色分類前先做結構驗證,包含實際的 ICC 標頭與分量檢查,而不是輕信
/N - 疊印模式 1 只在保留分量的程序著色能用到的地方檢查,對影像與漸變著色則回報為不適用
- 漸變圖樣從外圍內容串流的進入狀態開始並重設透明,其圖樣
ExtGState只套用隱含sh著色會用到的非描邊參數 - 填色加描邊的組合建模為一個隱含透明群組,要求 alpha 完全相等,透明與疊印原則閘門各自獨立
- 軟遮罩子類型、群組與混合空間結構在遍歷前檢查;Alpha 遮罩忽略群組顏色,Luminosity 遮罩需要有效的群組
/CS,而任何/BC都必須為混合空間的每個分量各含一個數值 - Type 3 CharProcs 開頭需要
d0或d1度量,運算元數量必須精確、水平寬度須與/Widths相符、垂直前進為零且d1邊界有序;d1繼承呼叫端的顏色、忽略局部色彩與透明運算子、禁止一般影像但保留影像遮罩 - 沒有明確
/ColorSpace的 JPX 影像使用有界的僅標頭 codestream 色彩中繼資料,每個影像串流只快取一次 - 註解有固定外觀時,
/BM套用於外層外觀組合,註解的/CA與/ca無法覆蓋它,外觀內部的運算子保留自己的圖形狀態
有界執行與快取
物件、問題、解碼位元組、內容工作、遞迴與圖形狀態堆疊的上限會在無界配置之前以穩定診斷失敗關閉,嵌在 TJ 陣列內的成員也在規範之列
解碼內容、ICC 設定檔、JPX 標頭色彩與 Type 3 結構使用帶索引的文件本地快取(儲存以幾何級數成長),而脈絡敏感的色彩與透明狀態每次呼叫都重新評估
結構化診斷
ValidatePDFX6 回傳 THPDFPDFX6ValidationIssues,即 THPDFPDFX6ValidationIssue 記錄陣列,其 THPDFPDFX6IssueSeverity 區分警告與錯誤
每個問題都包含穩定代碼、標準條款、規則集、規則修訂、物件路徑、物件編號、零基頁索引與訊息
THPDFPDFX6ValidationOptions 分別限制物件、問題、解碼位元組與內容 token,並可單獨隔離輸出意向、頁面框、交換、字型、註解、著色、疊印或透明檢查