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。 |