Compartilhar via


Referenciando localidades

Importante

A plataforma de impressão moderna é o meio preferencial do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) 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 Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.

Usando arquivos GPD

Os arquivos GPD podem fazer referência à localidade de um sistema. Normalmente, os identificadores de localidade são usados em instruções *Switch, em que parâmetros como tamanhos de papel padrão e DLLs de recursos podem ser especificados de maneira específica da localidade.

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

*Include: locale.gpd

Esse arquivo GPD define um recurso chamado "Localidade" e define opções para muitas localidades. (Consulte o arquivo para ver quais localidades estão definidas.) Veja a seguir 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 as 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 de 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
    }
}

Configurando o tamanho do papel padrão por localidade

Talvez você queira que seu motorista 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 motorista pode definir o tamanho de papel padrão adequadamente, como A4 para países que usam o sistema métrico e tamanho Carta 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, Locale, e LOCALE_ICOUNTRY para o segundo parâmetro, LCType.

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

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

      • CTRY_UNITED_STATES, ou

      • CTRY_CANADA, ou

      • Maior ou igual a 50, mas menor que 60 e não CTRY_BRAZIL, ou

      • Maior ou igual a 500, mas menor que 600

    • Métrica caso contrário.