Ссылки на языковые стандарты
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Использование файлов GPD
Файлы GPD могут ссылаться на языковой стандарт системы. Как правило, идентификаторы языкового стандарта используются в инструкциях *Switch, где параметры, такие как размеры бумаги по умолчанию и библиотеки DLL ресурсов, могут быть указаны в определенном языковом стандарте.
Чтобы ссылаться на сведения о языковом стандарте, файл GPD должен содержать инструкцию *Include, которая включает файл locale.gpd, который входит в состав комплекта драйверов Windows (WDK), как показано ниже.
*Include: locale.gpd
Этот файл GPD определяет функцию с именем "Языковой стандарт" и определяет параметры для многих языковых стандартов. (Ознакомьтесь с файлом, чтобы узнать, какие языковые параметры определены.) Ниже приведен пример использования этих параметров языкового стандарта. В примере используется размер бумаги по умолчанию на языковом стандарте.
*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 для стран, использующих систему метрик и размер букв для стран, которые не делают этого.
Используйте функцию GetLocaleInfo для получения языкового стандарта системы по умолчанию. Используйте LOCALE_SYSTEM_DEFAULT для первого параметра, языкового стандарта и LOCALE_ICOUNTRY для второго параметра LCType.
Используйте языковой стандарт системы по умолчанию, полученный из GetLocaleInfo , для определения размера метрики или бумаги, отличной от метрики.
Если системный языковой стандарт по умолчанию не соответствует метрике:
CTRY_UNITED_STATES или
CTRY_CANADA или
Больше или равно 50, но менее 60 и не CTRY_BRAZIL или
Больше или равно 500, но менее 600
Метрика в противном случае.