Pro 版本
Print Job — 深度参考
XjdfJobTicket 为生产印刷工作流构建一份 XJDF 2.1(XML JDF 2.0)作业票。该流式构建器记录作业元数据、media、色彩意图、装订加工操作、优先级与份数。随后 toXml 会序列化一份带 CIP4 命名空间的 XML 文档。该模块只产出作业票,不会把作业票提交给印刷机控制器或设备。
可用性与授权
标题为“可用性与授权”的章节此能力随 NextPDF Pro(nextpdf/pro)一起发布,并通过 Pro 层级的授权信封(license envelope)激活。未持有该授权的部署不会加载此能力的类。对比各版本并获取授权。
不适用任何单项功能许可标志。这是一项 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;}Media 规格 —— 不可变值对象:
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;}| Symbol | Parameters | Default behavior | Returns | Throws or fails with | Notes |
|---|---|---|---|---|---|
XjdfJobTicket::__construct | none | 优先级初始化为 JobPriority::Normal;份数为 1。 | instance | — | 流式构建器的根。 |
XjdfJobTicket::setJobId | string $id | 记录作业标识符。 | self | — | 允许空值;见 toXml。 |
XjdfJobTicket::setJobName | string $name | 记录人类可读的作业名称。 | self | — | 非空时作为 GeneralID 输出。 |
XjdfJobTicket::setPriority | JobPriority $priority | 覆盖默认的 Normal 优先级。 | self | — | — |
XjdfJobTicket::setMedia | MediaSpec $media | 附加一个 media 资源。 | self | — | 可选;未设置时省略。 |
XjdfJobTicket::setColor | ColorSpec $color | 附加一个色彩意图资源。 | self | — | 可选;未设置时省略。 |
XjdfJobTicket::setFinishing | FinishingSpec $finishing | 附加装订加工资源。 | self | — | 可选;未设置时省略。 |
XjdfJobTicket::setCopies | int $copies | 设置输出份数。 | self | 当 $copies < 1 时抛出 InvalidArgumentException | 默认为 1。 |
XjdfJobTicket::toXml | none | 序列化 XJDF 2.1 文档。 | string | — | 未设置时生成随机的 XJDF_<hex> 作业 ID。 |
MediaSpec::__construct | string $mediaType, float $widthMm, float $heightMm, int $weight, string $coating, string $color | 默认为 80 g/m² 的 A4 白纸。 | instance | — | 所有参数均可选。 |
MediaSpec::isStandard | none | 在 0.5 mm 内匹配 A4、US Letter 或 A3。 | bool | — | 纵向或横向。 |
MediaSpec::toXjdfElement | none | 输出一个 <Media> 元素;将毫米换算为点(point)。 | string | — | coating 与 color 为默认值时省略。 |
ColorSpec::__construct | bool $useCmyk, bool $useSpotColors, list<string> $spotColorNames, string $renderingIntent | 默认为 CMYK、相对比色意图。 | instance | — | — |
ColorSpec::colorCount | none | CMYK 返回 4,每个专色再加 1。 | int | — | — |
FinishingSpec::__construct | bool $fold, bool $staple, bool $punch, bool $trim, string $binding | 默认无装订加工;binding 为 None。 | instance | — | — |
JobPriority | enum cases Idle、Low、Normal、High、Rush | — | enum | — | 字符串枚举。 |
JobPriority::numericValue | none | 将枚举项映射为 0、25、50、75 或 100。 | int | — | 最高为 Rush(100)。 |
行为契约
标题为“行为契约”的章节XjdfJobTicket是一个流式构建器。每个 setter 返回self以支持链式调用。toXml在 CIP4 命名空间http://www.CIP4.org/JDFSchema_2_0下序列化一份简化的 XJDF 2.1 文档,Types="ConventionalPrinting"。- 未设置作业 ID 时,
toXml会替换为随机的XJDF_标识符,而非失败。 - 优先级同时写为
Comment与数值型的NodeInfo属性。份数写为Component输出数量。 - Media、color 与 finishing 资源仅在其规格被设置时才出现。
- 所有属性值在序列化前都会经过 XML 转义。
- 该模块产出作业票文档。它不会渲染打印流,也不会把作业票提交给设备。
边界情况与失败模式
标题为“边界情况与失败模式”的章节setCopies传入低于 1 的值会抛出InvalidArgumentException。这是该模块抛出的唯一异常。- 空的或未设置的作业 ID 不是错误。
toXml会在序列化时替换为随机的XJDF_<hex>标识符。 - Media 尺寸以毫米为单位。
toXjdfElement使用因子 72 / 25.4 将其换算为 PDF 点(point)。 MediaSpec::isStandard采用 0.5 mm 容差,并接受纵向或横向方向。MediaSpec::toXjdfElement在 coating 为None时省略FrontCoatings,在 color 为White时省略MediaColorName。- 该模块不执行任何密码学操作。FIPS 模式不改变其行为。
一致性
标题为“一致性”的章节NextPDF Pro 输出一个简化的 XJDF 2.1 子集。这是能力对齐,而非认证。NextPDF 未持有任何 CIP4 认证。
| Behavior | Reference | Status |
|---|---|---|
| XJDF 2.1 作业票结构 | XJDF 2.1 (CIP4) | 已对齐 —— 简化子集 |
开发说明
标题为“开发说明”的章节- 根与命名空间:一个位于
http://www.CIP4.org/JDFSchema_2_0下的<XJDF>元素,Types="ConventionalPrinting"。 - 色彩序列化器输出
NumColors与ColorsUsed。ColorSpec::renderingIntent保留在值对象上,但不会写入简化输出。 - Finishing 将布尔值映射为 XJDF 操作:fold 映射为
Folding,staple 映射为Stitching,punch 映射为HoleMaking,trim 映射为Trimming。非None的 binding 会输出一个BindingIntent。 - 值会被 XML 转义,但不做其他校验。请在构建前先对外部来源的作业名称与标识符进行清洗。
发布边界
标题为“发布边界”的章节本页仅记录外部可观测的行为与受支持的公开 API 范围。内部命名空间路径、辅助类、机制表、运行手册文件名与作业票前缀均不在范围内。