Создание и валидация PDF/X-6
HotPDF поддерживает workflows обмена PDF/X-6 — полные, с внешним профилем и с N красителями — поверх PDF 2.0
Профили
PDFXCompliance | THPDFPDFX6Profile | Output-профиль |
|---|---|---|
'X-6' | px6Complete | Встроенный ICC-профиль через DestOutputProfile |
'X-6p' | px6External | Внешний ICC-профиль gray, RGB или CMYK через DestOutputProfileRef |
'X-6n' | px6NChannel | Внешний профиль на N красителей плюс соответствующий ColorantTable |
| Определяется по документу | px6Automatic | Использует настройку producer или идентификацию из загруженного 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 запускает валидацию по принципу fail-closed для всех трёх профилей PDF/X-6 до сериализации
Область действия output intent
AddPDFXOutputIntentдобавляет один встроенный профиль на уровне Catalog для полного профиляAddPDFX6PageOutputIntentдобавляет встроенный профиль на одну страницуAddPDFX6ExternalOutputIntentдобавляет ссылку на внешний профиль в области Catalog сPageIndex=-1или в области страницы с индексом с нулевой базой- Массив
OutputIntentsна уровне страницы переопределяет массив Catalog для этой страницы - Каждая действующая область обязана содержать ровно один intent PDF/X
Page box
Валидатор разрешает наследуемые MediaBox и CropBox, проверяет прямые значения BleedBox, TrimBox и ArtBox и требует ровно один box готовой страницы на страницу
- Каждый прямоугольник обязан содержать четыре конечных упорядоченных координаты
CropBox,BleedBoxи box готовой страницы должны оставаться внутриMediaBoxTrimBoxиArtBoxвзаимоисключающие
Ограничения обмена
Один ограниченный обход графа проверяет идентификацию профиля и структуры обмена, дедуплицируя общие ресурсы по идентичности объектов
- Заголовок PDF 2.0, маркер профиля XMP, даты, заголовок, состояние trapped, ID trailer и отсутствие шифрования
- Типы действий, цепочки действий, массивы destination, состояние AcroForm и дополнительные действия полей
- Печатаемые видимые аннотации с фиксированными normal appearance и без подтипов PrinterMark или TrapNet
- Внедрённые программы шрифтов, потомки Type 0, типы и диапазоны значений graphics state и ресурсные XObject
- Запрещённые данные производственных шагов страниц и данные Catalog alternate presentation или viewer preference
Версионируемые правила
THPDFPDFX6ValidationOptions.RuleSet выбирает опубликованные правила ISO 15930-9:2020 или то же издание с разрешёнными errata по 2025-11-11; по умолчанию выбран набор с разрешёнными errata
HPDFPDFX6RuleSetRevision возвращает стабильную метку ревизии, и каждая запись THPDFPDFX6ValidationIssue несёт и RuleSet, и RuleRevision, поэтому сохранённые диагностики остаются атрибутируемыми, когда значения по умолчанию эволюционируют
Нанесённая краска, overprint и прозрачность
Валидатор интерпретирует graphics state и ресурсы в точках фактических операторов краски, а не считает выбор цвета уже нанесённым выводом
- Массивы content stream делят один стек
qиQ, а каждый Form XObject применяет свои ресурсы, матрицу, группу прозрачности и blending color space в точке вызова - Пути, текст, изображения, image mask, shading, pattern из tiling и shading, CharProcs глифов Type 3, группы soft mask и appearance аннотаций обходятся через их эффективные словари ресурсов
- Пустые пути, невидимый или только для клиппинга текст и неиспользуемые глифы Type 3 не создают находок о нанесённой краске
- Определения ICCBased, CalGray, CalRGB, Lab, Indexed, Pattern, Separation, DeviceN и NChannel структурно проверяются до классификации краски, включая фактические проверки заголовка и компонент ICC, а не доверие к
/N - Overprint mode 1 проверяется только там, где им могут пользоваться process-краски с сохранением компонент, а для красок изображений и shading сообщается как неприменимый
- Shading pattern стартуют из входного состояния охватывающего content stream со сброшенной прозрачностью, а их pattern
ExtGStateприменяет только нестroke-параметры, используемые неявной краскойsh - Комбинация заливки и обводки моделируется как одна неявная группа прозрачности, с точным равенством alpha и независимыми шлюзами политики прозрачности и overprint
- Подтип soft mask, структура группы и blending space проверяются до обхода; Alpha-маски игнорируют цвет группы, а Luminosity-маски требуют корректного
/CSгруппы, и любой/BCдолжен содержать по одному числовому значению на компонент blending space - CharProcs Type 3 требуют ведущих метрик
d0илиd1с точным числом операндов, горизонтальных ширин, совпадающих с/Widths, нулевого вертикального шага и упорядоченных границd1;d1наследует цвет вызывающего контекста, игнорируя локальные операторы цвета и прозрачности, запрещая обычные изображения, но сохраняя image mask - Изображения JPX без явного
/ColorSpaceиспользуют ограниченные цветовые метаданные codestream только из заголовка, кешируемые один раз на image stream - Когда у аннотации есть фиксированный appearance,
/BMприменяется к внешней композии appearance,/CAи/caаннотации его не переопределяют, а операторы внутри appearance сохраняют собственный graphics state
Ограниченное выполнение и кеширование
Потолки на объекты, находки, декодированные байты, работу с контентом, рекурсию и стек graphics state срабатывают по принципу fail-closed со стабильной диагностикой до неограниченного выделения памяти, включая члены, вложенные в массивы TJ
Декодированный контент, ICC-профили, цвет из заголовка JPX и структура Type 3 используют индексированные локальные для документа кеши с геометрически растущим хранилищем, а зависящее от контекста состояние цвета и прозрачности пересчитывается на каждом вызове
Структурированная диагностика
ValidatePDFX6 возвращает THPDFPDFX6ValidationIssues — массив record THPDFPDFX6ValidationIssue, чей THPDFPDFX6IssueSeverity различает предупреждения и ошибки
Каждая находка включает стабильный код, пункт стандарта, набор правил, ревизию правил, путь объекта, номер объекта, индекс страницы с нулевой базой и сообщение
THPDFPDFX6ValidationOptions независимо ограничивает объекты, находки, декодированные байты и token контента и может изолировать проверки output intent, page box, обмена, шрифтов, аннотаций, нанесённой краски, overprint или прозрачности