Partilhar via


Referenciando localizações

Importante

A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

Para obter mais informações, consulte Guia de design do aplicativo de suporte de impressão v1 e v2.

Usando arquivos GPD

Os arquivos GPD podem fazer referência à localidade de um sistema. Normalmente, os identificadores de localidade são usados dentro das instruções *Switch, onde parâmetros como tamanhos de papel padrão e DLLs de recursos podem ser especificados de acordo com a localidade.

Para fazer referência a informações de localidade, o arquivo GPD deve conter uma instrução *Include que inclua o arquivo locale.gpd, que está incluído no com o Windows Driver Kit (WDK), da seguinte maneira:

*Include: locale.gpd

Esse arquivo GPD define um recurso chamado "Locale" e define opções para muitas localidades. (Consulte o arquivo para ver quais localidades estão definidas.) A seguir está um exemplo de uso dessas opções de localidade. O exemplo baseia o tamanho do papel padrão na localidade.

*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

Em tempo de execução, o Unidrv determina a localidade padrão do sistema chamando GetSystemDefaultLCID. Quando uma impressora é instalada, o analisador GPD lê o arquivo GPD da impressora e usa informações dentro da instrução *Case associada à localidade padrão. Observe que, se a localidade do sistema for alterada após a instalação da impressora, as opções baseadas em localidade não serão alteradas.

Aqui está outro exemplo, que seleciona uma DLL de recurso com base na localidade. A DLL do recurso pode conter recursos específicos da localidade, como cadeias de caracteres de exibição.

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

Definindo o tamanho padrão do papel por localidade

Talvez você queira que o driver atribua o tamanho de papel padrão, métrico ou não métrico, com base na localização geográfica do usuário.

O algoritmo a seguir recupera a localidade padrão do sistema e, em seguida, usa códigos de país/região para determinar se a localidade do sistema representa um país que normalmente usa tamanhos de papel métricos ou não métricos. Com essas informações, o driver pode definir o tamanho de papel padrão adequadamente, como A4 para países que usam o sistema métrico e tamanho de letra para países que não usam.

  1. Use a função GetLocaleInfo para recuperar a localidade padrão do sistema. Use LOCALE_SYSTEM_DEFAULT para o primeiro parâmetro, Localee LOCALE_ICOUNTRY para o segundo parâmetro, LCType.

  2. Utilize a localidade padrão do sistema obtida a partir de GetLocaleInfo para determinar o tamanho de papel métrico ou não métrico.

    • Sistema não métrico se a localidade padrão do sistema for:

      • CTRY_UNITED_STATES, ou

      • CTRY_CANADA, ou

      • Igual ou superior a 50, mas inferior a 60 e não CTRY_BRAZIL, ou

      • Maior ou igual a 500, mas inferior a 600

    • Métrica de outra forma.