共用方式為


Win32 DeviceCapabilities API 行為變更

重要

新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。

如需詳細資訊,請參閱 新式列印平臺列印支援應用程式設計指南

在 XPSDrv 模式中執行的 Unidrv/PScript5 驅動程式會在 Microsoft Win32 DeviceCapabilities 函式中建立下列變更。

當 GPD/PPD 功能或選項使用 GPD 的 PrintSchemaKeywordMap 或 PPD 的 MSPrintSchemaKeywordMap 關鍵詞對應至列印架構關鍵詞時,GPD 或 PPD 支援該列印架構關鍵詞。

(在下表中,「僅限 PS」表示 PScript5 驅動程式的行為變更。「僅限 Unidrv」表示行為變更是 Unidrv 驅動程式特有的。如果這兩個片語未出現,行為變更會同時套用至 Unidrv 和 PScript5 驅動程式。

功能 非 XPSDrv 行為 XPSDrv 行為
DC_COPIES (僅限 Unidrv)啟用EMF時, DeviceCapabilities 會回復 硬式編碼值,其最大值為9999或 GPD 檔案的指定 *MaxCopies 值。

停用 EMF 時, DeviceCapabilities 會傳回 GPD*MaxCopies 值。

(僅限 PS) DeviceCapabilities 會傳回 9999 的硬式編碼值。
(僅限 Unidrv) DeviceCapabilities 會傳回 GPD *MaxCopies 值。

(僅限 PS) 如果 PPD 檔案中未指定值,DeviceCapabilities 會傳回 PPD 檔案的 *MSXPSMaxCopies 值或 1。
DC_TRUETYPE 若為 Unidrv,如果指定了 *FontFormat GPD 關鍵詞, DeviceCapabilities 會傳回 (DCTT_BITMAP |DCTT_DOWNLOAD):否則, DeviceCapabilities 會傳回DCTT_BITMAP。

針對 PS,DeviceCapabilities 一律會傳回 (DCTT_DOWNLOAD |DCTT_SUBDEV)。
如果 GPD 或 PPD 支援具有 “PageDeviceFontSubstitution” Print Schema 關鍵詞的功能,則會在傳回值中設定DCTT_SUBDEV旗標。

如果 GPD 或 PPD 支援具有 “PageTrueTypeFontMode” Print Schema 關鍵詞的功能,則會發生下列情況:

如果功能支援具有 「DownloadAsOutlineFont」 Print Schema 關鍵詞的選項,則會在傳回值中設定DCTT_DOWNLOAD和DCTT_DOWNLOAD_OUTLINE旗標。

如果此功能支援具有 「Automatic」、“DownloadAsRasterFont” 或 “DownloadAsNativeTrueTypeFont” Print Schema 關鍵詞的選項,則會在傳回值中設定DCTT_DOWNLOAD旗標。

如果功能支援具有 「RenderAsBitmap」 Print Schema 關鍵詞的選項,則會在傳回值中設定DCTT_BITMAP旗標。

如果未設定任何DCTT_Xxx旗標, DeviceCapabilities 會傳回 0。
DC_ORIENTATION (僅限 PS) DeviceCapabilities 會根據 PPD 的 *LandscapeOrientation 值傳回 90 或 270,並在輸入 DEVMODE 結構中設定硬式編碼旋轉橫向選項。 (僅限 PS)默認傳回值為 0,這表示沒有橫向方向。

如果 PPD 支援具有 「PageOrientation」 Print Schema 關鍵詞的功能,則會發生下列情況:

如果功能支援具有 「Landscape」 Print Schema 關鍵詞的選項, DeviceCapabilities 會傳回 90。

如果功能支援具有 「ReverseLandscape」 Print Schema 關鍵詞的選項, DeviceCapabilities 會傳回 270。
DC_COLLATE 啟用EMF時, DeviceCapabilities 會硬式編碼以傳回1(這表示支援定序)。

停用 EMF 時,如果 GPD 或 PPD 指定 Collate 作為支援的功能,以及 Collate GPD 或 PPD 功能不受任何裝置設定功能的限制, DeviceCapabilities 會傳回 1。 否則, DeviceCapabilities 會傳回 0。
行為與停用EMF的非XPSDrv驅動程式相同。
DC_NUP DeviceCapabilities 會傳回硬式編碼值,指出支援 1、2、4、6、9 或 16 個。 如果 GPD 或 PPD 使用 “DocumentNUp” 列印架構關鍵詞來定義特徵(只有當沒有 “JobNUpAllDocumentsContiguously” 功能存在時,才會使用 “DocumentNUpAllDocumentsContiguously” 功能),則對於具有 GPD/PPD 關鍵詞名稱選項的任何功能選項,則數值會回報為每個工作表值其中一個支持的頁面。

否則,XPSDrv 會報告不支援 NUp。
DC_PERSONALITY Unidrv 會傳回 Personality 或rcPersonalityID GPD 關鍵詞所定義的字串。

PS 一律會傳回 “PostScript”。
讓行為與非 XPSDrv 驅動程序的行為相同。
DC_MEDIAREADY 如果建立窗體匣指派數據表,DeviceCapabilities 會傳回具有指派匣之數據表中所列的唯一窗體名稱。

如果未建立表單匣指派表格, DeviceCapabilities 會針對非對稱系統預設地區設定傳回 「Letter」、計量系統預設地區設定的 「A4」,如果列印機不支援 「Letter」 和 「A4」,則會傳回 GPD 或 PPD 定義的預設紙張大小。
此行為與未建立窗體匣指派數據表的非 XPSDrv 相同。
DC_STAPLE (僅限 PS)PPD 沒有單一的「裝訂」功能。 PScript5 驅動程式會檢查 PPD 中是否有任何下列 PPD 功能定義,且不受裝置設定限制,以判斷裝置是否可支援裝訂。

“StapleLocation”
“StapleX”、“Stapley”
“斯台普””
“StapleOrientation”
(僅限 PS)如果 PPD 支援具有 “JobStapleAllDocuments” 或 “DocumentStaple” Print Schema 關鍵詞的功能,DeviceCapabilities 會傳回 1 表示支援裝訂。 否則,DeviceCapabilities 會傳回 0。