使用 EnumOptions
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
呼叫端可以使用 EnumOptions 來擷取支援驅動程式功能和任何 PPD 功能的關鍵詞選項清單。 針對PPD功能, 一律支援EnumOptions ,並傳回PPD所定義的選項。
針對驅動程式功能, EnumOptions 僅支援目前支援且有一組固定選項的功能。 例如: %AddEuro 有兩個選項:“True” 和 “False”,而 %PageOrder 有兩個選項 “FrontToBack” 和 “BackToFront”。 %AddEuro 支援 EnumOptions (如果語言層級為 2 和更新版本),如同 %PageOrder (如果已啟用多任務緩衝處理程式 EMF 多任務緩衝處理)。 但是 %CustomPageSize、%PSMemory 等功能有無限數量的可能選項,這表示 EnumOptions 不支持它們。
針對目前不支援的驅動程式功能,或針對無法透過 EnumOptions 列舉的支持驅動程式功能,EnumOptions 會傳回E_NOTIMPL。
此外,某些情況下可能不支持驅動程式功能的一些選項。 例如,如果 Windows 2000 和更新版本的作業系統版本停用多任務緩衝處理 EMF 多任務緩衝處理,則 %PagePerSheet 功能不支援 “Booklet” 選項。 例如,如果印表機沒有 Type42 轉譯器,則 %TTDownloadFormat 不支援 “NativeTrueType” 選項。 這些不支援的選項不會出現在 EnumOptions 的輸出關鍵詞清單中。
Pscript 會以特殊方式處理下列功能關鍵詞:
*CustomPageSize 功能關鍵詞會轉換成 *PageSize 功能關鍵詞的選項,而 “CustomPageSize” 是 option 關鍵詞。 呼叫 GetOptionAttribute 以取得其 PPD 參數。
*ManualFeed True 項目會轉換成 *InputSlot 功能關鍵詞的選項,其中 “ManualFeed” 是選項關鍵詞名稱。
針對 *InputSlot 功能關鍵詞,Pscript 一律會新增驅動程式產生的選項,其中選項關鍵詞名稱為 “*UseFormTrayTable” 做為第一個選項(選項關鍵詞名稱中會使用 “*” 前置詞,以避免與 PPD 定義的選項發生可能的名稱衝突),其後面接著 PPD 中定義的選項。 如果已選取 「*UseFormTrayTable」 選項,Pscript 會使用表單到紙匣指派表格來自動選取支援所選紙張大小的紙匣。