以 GPD 或 PPD 檔案為基礎的組態模組
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
針對 Windows Vista,GPD 和 PPD 檔案包含列印架構對應,以及 XPSDrv 列印驅動程式特有的新專案。 這些變更適用於 GPD 和 PPD 檔案,您可以用來建立僅限 GPD 或僅限 PPD 的組態模組和 Unidrv 或 Pscript5 列印驅動程式外掛程式的元件的模組和組態模組。
XPSDrv 特定 GPD 和 PPD 專案
若要使用 GPD 或 PPD 檔案建立 XPSDrv 列印驅動程式的第 3 版列印驅動程式組態模組,您必須執行下列其中一項:
建立或編輯 GPD 或 PPD 檔案。 檔案必須包含描述印表機所支援功能的組態關鍵詞。 標準 GPD 或 PPD 關鍵詞會自動對應至公用 Print Schema 關鍵詞,但非標準關鍵字預設會對應至私用命名空間。
如果您要建立 GPD 檔案或 Msxpsinc.ppd 檔案,請包含 Msxpsinc.gpd 檔案。如果您要建立 PPD 檔案,請包含 Msxpsinc.gpd 檔案。 這些檔案包含下列關鍵詞,指出產生的組態檔將會是 XPSDrv 列印驅動程式的一部分。
針對 Msxpsinc.gpd,它包含:
IsXPSDriver?: TRUE
針對 Msxpsinc.ppd,它包含:
*MSIsXPSDriver: True
包含 Msxpsinc.gpd 或 Msxpsinc.ppd 檔案是慣用的方法,而不是將這些屬性新增至 GPD 或 PPD 檔案。 Microsoft可以將 XPSDrv 驅動程式的未來屬性新增至適當的 include 檔案。 如果Microsoft將新的屬性新增至 include 檔案,而且您在 GPD 或 PPD 檔案中使用 include 檔案,則不需要編輯列印驅動程式的 GPD 或 PPD 檔案。
所有Microsoft Unidrv 或 PScript5 驅動程式型 XPSDrv 驅動程式的根 GPD 或 PPD 檔案(在 INF 檔案中指定為驅動程式的 DataFile
檔案)都必須包含對應的 Msxpsinc.gpd 或 Msxpsinc.ppd 檔案。
例如,針對 Model-foo.gpd,包括:
*Include: "msxpsinc.gpd"
針對 Model-foo.ppd,包括:
*Include: "msxpinc.ppd"
列印架構對應
列印架構對應是 Unidrv 和 PScript5 組態模組的功能,會將 GPD 和 PPD 關鍵詞轉譯為其相等的公用列印架構關鍵詞。 根據預設,所有標準 GPD 和 PPD 關鍵詞都會對應至其相等的公用列印架構關鍵詞。 不過,GPD 或 PPD 檔案中的非標準關鍵字預設會對應至私人的裝置特定命名空間。 您可以執行下列其中一項或兩項來改善此對應:
指定非標準關鍵詞的私人命名空間。
將 GPD 或 PPD 檔案中的非標準功能和 Option 關鍵詞與其相等關鍵詞與 GPD 或 PPD 檔案中公用列印架構的對等關鍵詞產生關聯。 此關聯可讓組態模組產生 PrintTicket 和 PrintCapabilities 數據做為公用列印架構功能。
GPD 檔案範例
下列程式代碼範例顯示 GPD 檔案,說明為 XPSDrv 列印驅動程式建立第 3 版組態模組的專案和關鍵詞。
*%
*% Copyright (c) 2004 - 2006 Microsoft Corporation
*% All Rights Reserved.
*%
*GPDFileVersion: "1.0"
*GPDSpecVersion: "1.0"
*GPDFileName: "plugfest.gpd"
*Include: "StdNames.gpd"
*%
*% Include XPSDrv include file
*%
*Include: "MSXpsInc.gpd"
*ModelName: "Microsoft XPS Passthrough Driver Sample"
*MasterUnits: PAIR(1200, 1200)
*ResourceDLL: "unires.dll"
*PrinterType: PAGE
*MaxCopies: 1
*%
*% IHV Private Namespace
*%
*PrintSchemaPrivateNamespaceURI:"https://www.ihv.com/schema/2006"
*%
*% IHV Private Feature
*%
*Feature: IHVStapling {
*PrintSchemaKeywordMap: "JobStapleAllDocuments"
*Option: Enabled {
*PrintSchemaKeywordMap: "StapleTopLeft" }
*Option: Disabled {
*PrintSchemaKeywordMap: "None" }
}