PrintCapabilities 檔建構檢查清單

本主題不是最新的。 如需最新的資訊,請參閱 列印架構規格

元素類型摘要 討論了構成 PrintCapabilities 文檔的各種元素。 本節提供一份檢查清單,可供 PrintCapabilities 檔的作者用來建立描述裝置的 PrintCapabilities 檔。

  1. 識別參與裝置設定的所有裝置屬性。 針對每個這類裝置屬性,判斷它是否應該以Feature/Option建構或參數建構表示。

  2. 針對每個裝置功能,判斷它是否可以由列印架構關鍵詞中定義的功能來表示。 如果沒有,您將需要引進新的私用定義功能(以及對應的名稱屬性)。

    • 針對列印架構關鍵詞定義的功能實例,請識別此功能可設定的每個可用狀態。 每個狀態都會對應至功能實例的 Option。 判斷這些狀態中的哪一個對應至與這項功能相關聯的列印架構定義選項實例,以及哪些狀態需要自定義的 Option 實例。 選項定義 主題提供如何建構新 Option 實例的資訊,以及如何從現有的 Option 實例衍生新的 Option 實例。

    • 針對非標準功能實例,請識別可用來區分某個選項與另一個選項的特性。 以 ScoredProperty 元素表示每個這類特性,並在每個 Option 實例中,為每個 ScoredProperty 指派該 Option 特有的值。 請確定有足夠的 ScoredProperty 元素,讓指定功能的每個選項都是唯一的。 非標準功能和選項實例本質上是不可移植的。 也就是說,另一個驅動程式將無法找到任何相等的功能或選項,以符合驅動程式所建立之 PrintTicket 中指定的非標準功能或選項。

  3. 判斷任何 Option 是否必須包含 ParameterRef 元素。 如需詳細資訊,請參閱 參數建構參數參考元素

  4. 針對參數,判斷列印架構關鍵詞中定義的其中一個ParameterDef實例是否相符。 如果是,請從打印架構關鍵字中複製 ParameterDef 實例,並調整每個可變屬性實例的值,使其最佳匹配。 如果 Print Schema Keywords 中沒有任何 ParameterDef 實例相符,請建立您自己的 ParameterDef 實例。 如需詳細資訊,請參閱 PrintCapabilities 檔 中的參數。

  5. 請確定列印架構關鍵詞檔所需的所有屬性和 ScoredProperty 實例都存在於您的 PrintCapabilities 檔中,而且它們已正確初始化。

  6. 視需要新增其他屬性和子屬性實例。 如果裝置的某些層面需要描述但列印架構關鍵字中定義的屬性實例未涵蓋,您可以引入自訂定義的屬性實例。

  7. 遵循名稱屬性的命名空間慣例。 這適用於私下定義的名稱屬性,以及列印架構關鍵詞中定義的屬性。

  8. 相同元素類型的子系不能嵌套到超過10個元素的深度。 此規則會獨立套用至可定義的每個項目類型。

請注意,列印功能檔 XML 內容必須使用 UTF-8 或 UTF-16 進行編碼。

請注意,無論快照為何,報告中的特徵、選項和 ParameterDef 實例的集合皆不得變更。 每個 Option 實例中的 ScoredProperty 實例以及分配給每個 ScoredProperty 元素的 Value 都不應該改變。 構成每個 ParameterDef 實例的 Property 實例也是如此。

如需必須提供以完整定義功能/選項建構和參數的其他屬性實例清單,請參閱 ParameterDefParameterInit。 例如,每個功能都必須指定其使用者介面 (UI) 行為,特別是一次是否只能針對每個功能選取一或多個 Option 實例。 Print Schema Keywords 檔會定義這些屬性實例,其中必須出現在 PrintCapabilities 檔中,以及列印架構關鍵詞中定義的 Value 實例可供使用。

PrintCapabilities 提供者負責針對所有組態相依屬性實例發出適當的值。 例如,如果列印速率取決於所使用的色彩模式和解析度,PrintCapabilities 提供者必須注意用戶端提供的 PrintTicket 中指定的色彩模式和解析度設定,而且必須報告列印速率的適當值。 請注意,每個 ScoredProperty 實例都必須是單一值;其 Value 實例在裝置組態變更時無法變更。

另請注意,列印架構關鍵詞中定義的屬性實例必須出現在該處指定的位置。 它們不能出現在 PrintCapabilities 檔中的任意位置。 私下定義的屬性實例可能會出現在任何地方,即使架構定義的屬性實例內的子屬性也一樣。

請注意,設定之間的功能衝突定義為具有類似函式但功能不同的兩個非衝突列印架構元素。 例如,JobDuplexAllDocumentsContiguously 和 DocumentDuplex 兩者都代表裝置的雙工功能,但其應用方式不同,一個是連續套用至整個工作,另一個套用至各個文件。 在指定兩個這類元素的情況下,優先順序是由 PrintCapabilities 產生者和 PrintTicket 取用者決定。 PrintCapabilities 產生者有責任透過「限制」屬性正確指出互相衝突的元素之間的限制。 公開列印架構中的元素會在其定義中識別出此語意衝突。

列印架構規格