共用方式為


參考地區設定

重要

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

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

使用 GPD 檔案

GPD 檔案可以參考系統的地區設定。 一般而言,地區設定標識碼會在 *Switch 語句中使用,其中可以使用地區設定特定方式指定預設紙張大小和資源 DLL 等參數。

若要參考地區設定資訊,GPD 檔案必須包含包含檔案 locale.gpd 的 *Include 語句,其隨附於 Windows Driver Kit (WDK),如下所示:

*Include: locale.gpd

此 GPD 檔案會定義名為 「Locale」 的功能,並定義許多地區設定的選項。 (請參閱 檔案以查看哪些地區設定已定義。)以下是這些地區設定選項的範例用法。 此範例會根據地區設定的預設紙張大小。

*Feature: PaperSize
{
...
    Option: A4
    {
    }
    ...
*switch: Locale
{
    *case: English_United_States
    {
        *DefaultOption: Letter
    }
    *case: English_United_Kingdom
    {
        *DefaultOption: A4
    }
    *default:
    {
        *DefaultOption: Letter
    }
} *% End of switch
} *% End of Feature: PaperSize

在運行時間,Unidrv 會呼叫 GetSystemDefaultLCID 來判斷系統的預設地區設定。 安裝印表機時,GPD 剖析器會讀取印表機的 GPD 檔案,並使用與預設地區設定相關聯的 *Case 語句內的資訊。 請注意,如果在安裝印表機之後變更系統的地區設定,則不會變更地區設定選項。

以下是另一個範例,它會根據地區設定選取資源 DLL。 資源 DLL 可以包含地區設定特定的資源,例如顯示字串。

*switch: Locale
{
    *case: English_United_States
    {
        *ResourceDLL: english.dll
    }
    *case: German_Standard
    {
        *ResourceDLL: german.dll
    }
    *default:
    {
        *ResourceDLL: english.dll
    }
}

依地區設定設定預設紙張大小

您可能想要讓驅動程式根據使用者的地理位置指派預設紙張大小,無論是計量還是非計量。

下列演算法會擷取預設系統地區設定,然後使用國家/地區代碼來判斷系統地區設定是否代表通常使用計量或非計量紙張大小的國家/地區設定。 透過這項資訊,您的驅動程式可以適當地設定預設紙張大小,例如 A4,適用於使用計量系統的國家 /地區,以及未設定的國家/地區的字母大小。

  1. 使用 GetLocaleInfo 函式來擷取預設系統地區設定。 針對第二個參數 LCType 使用LOCALE_SYSTEM_DEFAULT,第一個參數 Locale 和 LOCALE_ICOUNTRY。

  2. 使用從 GetLocaleInfo 取得的預設系統地區設定來判斷計量或非計量紙張大小。

    • 如果預設系統地區設定為,則為非計量:

      • CTRY_UNITED_STATES或

      • CTRY_CANADA或

      • 大於或等於 50,但小於 60 且不CTRY_BRAZIL,或

      • 大於或等於 500,但小於 600

    • 否則為計量。