Pro 版本
Print Job — 深入參考
XjdfJobTicket 為量產印刷工作流程建構一份 XJDF 2.1(XML JDF 2.0)作業工單。這個流暢式(fluent)建構器會記錄作業中繼資料、媒材、色彩意圖、加工作業、優先順序與份數。接著 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;}媒材規格 — 不可變值物件:
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:
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。 | instance | — | 流暢式建構器根節點。 |
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 | 當 $copies < 1 時拋出 InvalidArgumentException | 預設為 1。 |
XjdfJobTicket::toXml | 無 | 序列化 XJDF 2.1 文件。 | string | — | 未設定作業 ID 時會產生隨機的 XJDF_<hex> 作業 ID。 |
MediaSpec::__construct | string $mediaType, float $widthMm, float $heightMm, int $weight, string $coating, string $color | 預設為 80 g/m² 的 A4 白紙。 | instance | — | 所有參數皆為選用。 |
MediaSpec::isStandard | 無 | 在 0.5 mm 容差內比對 A4、US Letter 或 A3。 | bool | — | 直向或橫向皆可。 |
MediaSpec::toXjdfElement | 無 | 輸出一個 <Media> 元素;將毫米換算為點(points)。 | string | — | 塗佈與色彩為預設值時省略。 |
ColorSpec::__construct | bool $useCmyk, bool $useSpotColors, list<string> $spotColorNames, string $renderingIntent | 預設為 CMYK、相對色度(relative colorimetric)意圖。 | instance | — | — |
ColorSpec::colorCount | 無 | 回傳 4(CMYK)再加上每個特別色各 1。 | int | — | — |
FinishingSpec::__construct | bool $fold, bool $staple, bool $punch, bool $trim, string $binding | 預設為不加工;裝訂為 None。 | instance | — | — |
JobPriority | enum 案例 Idle、Low、Normal、High、Rush | — | enum | — | 字串型。 |
JobPriority::numericValue | 無 | 將案例對應到 0、25、50、75 或 100。 | int | — | 最高為 Rush(100)。 |
行為合約
標題為「行為合約」的區段XjdfJobTicket是一個流暢式建構器。每個 setter 都回傳self以利串接。toXml會在 CIP4 命名空間http://www.CIP4.org/JDFSchema_2_0下、以Types="ConventionalPrinting"序列化出一份精簡的 XJDF 2.1 文件。- 未設定作業 ID 時,
toXml會以隨機的XJDF_識別碼取代,而非失敗。 - 優先順序會同時寫成一個
Comment與一個數值型NodeInfo屬性。份數會寫成Component的輸出數量。 - 媒材、色彩與加工資源僅在其規格已設定時才會出現。
- 所有屬性值在序列化前都會經過 XML 轉義。
- 本模組會產出工單文件。它不會產生列印串流,也不會將工單送交給裝置。
邊界案例與失敗模式
標題為「邊界案例與失敗模式」的區段setCopies傳入小於 1 的值時會拋出InvalidArgumentException。這是本模組唯一會拋出的例外。- 空白或未設定的作業 ID 並非錯誤。
toXml會在序列化時以隨機的XJDF_<hex>識別碼取代。 - 媒材尺寸以毫米為單位。
toXjdfElement會以 72 / 25.4 的係數將其換算為 PDF 點(points)。 MediaSpec::isStandard套用 0.5 mm 的容差,並接受直向或橫向。- 當塗佈為
None時,MediaSpec::toXjdfElement會省略FrontCoatings;當色彩為White時會省略MediaColorName。 - 本模組不執行任何密碼學運算。FIPS 模式不會改變其行為。
一致性
標題為「一致性」的區段NextPDF Pro 會輸出精簡的 XJDF 2.1 子集。這是功能對齊,而非認證。NextPDF 未持有任何 CIP4 認證。
| 行為 | 參考 | 狀態 |
|---|---|---|
| XJDF 2.1 作業工單結構 | XJDF 2.1 (CIP4) | 對齊 — 精簡子集 |
開發注記
標題為「開發注記」的區段- 根節點與命名空間:
http://www.CIP4.org/JDFSchema_2_0下的一個<XJDF>元素,並帶有Types="ConventionalPrinting"。 - 色彩序列化器會輸出
NumColors與ColorsUsed。ColorSpec::renderingIntent會保留在值物件上,但不會寫入精簡輸出中。 - 加工會將布林值對應到 XJDF 作業:fold 對應
Folding、staple 對應Stitching、punch 對應HoleMaking、trim 對應Trimming。非None的裝訂會輸出一個BindingIntent。 - 值只會經過 XML 轉義,不會有其他驗證。請在建構前先清理來自外部來源的作業名稱與識別碼。
出版邊界
標題為「出版邊界」的區段本頁僅記錄外部可觀察的行為與受支援的公開 API 介面。內部命名空間路徑、輔助類別、機制表、操作手冊檔名,以及工單前綴均不在範圍內。