Pro редакция
Print Job — глубокий справочник
XjdfJobTicket строит задание-билет XJDF 2.1 (XML JDF 2.0) для производственных процессов печати. Текучий построитель фиксирует метаданные задания, носитель, цветовое намерение, операции отделки, приоритет и число копий. Затем toXml сериализует XML-документ в пространстве имён CIP4. Модуль формирует только билет. Он не отправляет билет на контроллер печатной машины или устройство.
Доступность и лицензирование
Заголовок раздела «Доступность и лицензирование»Эта возможность поставляется в составе NextPDF Pro (nextpdf/pro) и активируется лицензионным конвертом уровня Pro. Развёртывание без такого права не загружает классы возможности. Сравните редакции и получите лицензию.
Отдельного флага лицензии на функцию нет. Это возможность редакции Pro.
Поверхность публичного API
Заголовок раздела «Поверхность публичного API»composer require nextpdf/pro:^3Точка входа — текучий построитель:
final class XjdfJobTicket{ public function __construct(); public function setJobId(string $id): self; public function setJobName(string $name): self; public function setPriority(JobPriority $priority): self; public function setMedia(MediaSpec $media): self; public function setColor(ColorSpec $color): self; public function setFinishing(FinishingSpec $finishing): self; public function setCopies(int $copies): self; public function toXml(): string;}Спецификация носителя — неизменяемый объект-значение:
final readonly class MediaSpec{ public function __construct( public string $mediaType = 'Paper', public float $widthMm = 210.0, public float $heightMm = 297.0, public int $weight = 80, public string $coating = 'None', public string $color = 'White', ); public function isStandard(): bool; public function toXjdfElement(): string;}Цветовое намерение — неизменяемый объект-значение:
final readonly class ColorSpec{ public function __construct( public bool $useCmyk = true, public bool $useSpotColors = false, public array $spotColorNames = [], public string $renderingIntent = 'RelativeColorimetric', ); public function colorCount(): int;}Намерение отделки — неизменяемый объект-значение:
final readonly class FinishingSpec{ public function __construct( public bool $fold = false, public bool $staple = false, public bool $punch = false, public bool $trim = false, public string $binding = 'None', );}Приоритет — перечисление на основе строк:
enum JobPriority: string{ case Idle = 'Idle'; case Low = 'Low'; case Normal = 'Normal'; case High = 'High'; case Rush = 'Rush';
public function numericValue(): int;}| Символ | Параметры | Поведение по умолчанию | Возвращает | Бросает или падает с | Примечания |
|---|---|---|---|---|---|
XjdfJobTicket::__construct | нет | Приоритет инициализируется как JobPriority::Normal; число копий — 1. | экземпляр | — | Корень текучего построителя. |
XjdfJobTicket::setJobId | string $id | Фиксирует идентификатор задания. | self | — | Пустое значение допустимо; см. toXml. |
XjdfJobTicket::setJobName | string $name | Фиксирует читаемое имя задания. | self | — | Выводится как GeneralID, когда непусто. |
XjdfJobTicket::setPriority | JobPriority $priority | Переопределяет приоритет по умолчанию Normal. | self | — | — |
XjdfJobTicket::setMedia | MediaSpec $media | Прикрепляет ресурс носителя. | self | — | Необязательно; пропускается, если не задан. |
XjdfJobTicket::setColor | ColorSpec $color | Прикрепляет ресурс цветового намерения. | self | — | Необязательно; пропускается, если не задан. |
XjdfJobTicket::setFinishing | FinishingSpec $finishing | Прикрепляет ресурсы отделки. | self | — | Необязательно; пропускается, если не задан. |
XjdfJobTicket::setCopies | int $copies | Задаёт число копий на выходе. | self | InvalidArgumentException, когда $copies < 1 | По умолчанию 1. |
XjdfJobTicket::toXml | нет | Сериализует документ XJDF 2.1. | string | — | Генерирует случайный идентификатор задания XJDF_<hex>, если он не был задан. |
MediaSpec::__construct | string $mediaType, float $widthMm, float $heightMm, int $weight, string $coating, string $color | По умолчанию — белая бумага A4 плотностью 80 г/м². | экземпляр | — | Все параметры необязательны. |
MediaSpec::isStandard | нет | Совпадает с A4, US Letter или A3 в пределах 0,5 мм. | bool | — | Портретная или альбомная ориентация. |
MediaSpec::toXjdfElement | нет | Выводит элемент <Media>; переводит миллиметры в пункты. | string | — | Опускает покрытие и цвет при их значениях по умолчанию. |
ColorSpec::__construct | bool $useCmyk, bool $useSpotColors, list<string> $spotColorNames, string $renderingIntent | По умолчанию — CMYK, относительное колориметрическое намерение. | экземпляр | — | — |
ColorSpec::colorCount | нет | Возвращает 4 для CMYK плюс по одному на каждый плашечный цвет. | int | — | — |
FinishingSpec::__construct | bool $fold, bool $staple, bool $punch, bool $trim, string $binding | По умолчанию — без отделки; переплёт None. | экземпляр | — | — |
JobPriority | случаи перечисления Idle, Low, Normal, High, Rush | — | перечисление | — | На основе строк. |
JobPriority::numericValue | нет | Отображает случай в 0, 25, 50, 75 или 100. | int | — | Наибольший — Rush (100). |
Контракт поведения
Заголовок раздела «Контракт поведения»XjdfJobTicket— текучий построитель. Каждый сеттер возвращаетselfдля цепочки вызовов.toXmlсериализует упрощённый документ XJDF 2.1 в пространстве имён CIP4http://www.CIP4.org/JDFSchema_2_0, сTypes="ConventionalPrinting".- Если идентификатор задания не был задан,
toXmlподставляет случайный идентификаторXJDF_, а не завершается ошибкой. - Приоритет записывается и как
Comment, и как числовой атрибутNodeInfo. Число копий записывается как выходное количествоComponent. - Ресурсы носителя, цвета и отделки появляются, только если их спецификации были заданы.
- Все значения атрибутов экранируются для XML перед сериализацией.
- Модуль формирует документ-билет. Он не рендерит поток печати и не отправляет билет на устройство.
Граничные случаи и режимы отказа
Заголовок раздела «Граничные случаи и режимы отказа»setCopiesсо значением меньше 1 бросаетInvalidArgumentException. Это единственное исключение, которое поднимает модуль.- Пустой или незаданный идентификатор задания не является ошибкой.
toXmlподставляет случайный идентификаторXJDF_<hex>во время сериализации. - Размеры носителя — в миллиметрах.
toXjdfElementпереводит их в пункты PDF с коэффициентом 72 / 25,4. MediaSpec::isStandardприменяет допуск 0,5 мм и принимает портретную или альбомную ориентацию.MediaSpec::toXjdfElementопускаетFrontCoatings, когда покрытие —None, иMediaColorName, когда цвет —White.- Модуль не выполняет криптографических операций. Режим FIPS не меняет его поведение.
Соответствие
Заголовок раздела «Соответствие»NextPDF Pro выводит упрощённое подмножество XJDF 2.1. Это согласование возможностей, а не сертификация. NextPDF не имеет сертификации CIP4.
| Поведение | Ссылка | Статус |
|---|---|---|
| Структура задания-билета XJDF 2.1 | XJDF 2.1 (CIP4) | Согласовано — упрощённое подмножество |
Заметки по разработке
Заголовок раздела «Заметки по разработке»- Корень и пространство имён: элемент
<XJDF>вhttp://www.CIP4.org/JDFSchema_2_0, сTypes="ConventionalPrinting". - Сериализатор цвета выводит
NumColorsиColorsUsed.ColorSpec::renderingIntentсохраняется в объекте-значении, но не записывается в упрощённый вывод. - Отделка отображает булевы значения в операции XJDF: fold — в
Folding, staple — вStitching, punch — вHoleMaking, trim — вTrimming. Переплёт, отличный отNone, выводитBindingIntent. - Значения экранируются для XML, но иначе не проверяются. Санируйте имена и идентификаторы заданий из внешних источников перед построением.
Граница публикации
Заголовок раздела «Граница публикации»Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую поверхность публичного API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов ранбуков и префиксы билетов вне области рассмотрения.