Ограничения выбора
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Часто некоторые параметры для различных функций принтера не могут быть выбраны одновременно. Например, если выбран канал конверта, то неувелижимые размеры бумаги, такие как размер буквы или бумага размера A4, не могут быть выбраны.
Чтобы указать сочетания параметров принтера, которые нельзя одновременно выбрать, используйте *InvalidCombination или *Constraints. Если пользователь пытается выбрать сочетание параметров, указанных как недопустимые, Unidrv отклоняет выбор.
Запись *InvalidCombination имеет следующий формат:
*InvalidCombination: LIST ( FeatureName ). OptionName , FeatureName . OptionName , ...)
Где FeatureName — это имя компонента, а OptionName — это имя параметра, связанного с функцией.
Параметры, перечисленные в одной записи *InvalidCombination, указывают набор параметров, которые нельзя использовать в сочетании. Например, следующая запись указывает, что цветовой режим CMYK нельзя использовать с обычным документом и 720 DPI.
*InvalidCombination: LIST(Resolution.720dpi, MediaType.Plain, ColorMode.CMYK)
Все записи InvalidCombination должны находиться на корневом уровне файла GPD (т. е. не в скобках). Количество параметров, включенных в запись, не ограничено.
Если необходимо указать только недопустимую связь сочетания между двумя параметрами, можно использовать запись *Constraints. Его формат:
*Ограничения: featureName . OptionName
Где FeatureName — это имя компонента, а OptionName — это имя параметра, связанного с функцией. Запись *Ограничения должна быть помещена внутри записи *Option. Например, чтобы указать, что размер буквы и бумаги размера A4 нельзя использовать с каналом конверта, можно использовать следующие записи:
*Feature: InputBin
{
*Option: ENVFEED
{
*Constraints: PaperSize.Letter
*Constraints: PaperSize.A4
}
}
или, эквивалентно:
*Feature: InputBin
{
*Option: ENVFEED
{
*Constraints: LIST(PaperSize.Letter, PaperSize.A4)
}
}
В этих примерах указывается, что если пользователь пытается выбрать веб-канал конверта и бумагу размера буквы, либо канал конверта и бумагу размера A4, Unidrv отклоняет выбор.