Поделиться через


Использование EnumOptions

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.

Вызывающий объект может использовать EnumOptions для получения списка ключевых слов поддерживаемых функций драйвера и любых функций PPD. Для функций PPD EnumOptions всегда поддерживается и возвращает параметры, определенные PPD.

Для функций драйвера EnumOptions поддерживается только для поддерживаемых в настоящее время функций и имеет фиксированный набор параметров. Например: %AddEuro имеет два параметра: True и False, а %PageOrder имеет два параметра FrontToBack и BackToFront. EnumOptions поддерживается для %AddEuro (если уровень языка равен 2 и выше), как и %PageOrder (если включена spooler EMF spooling). Но такие функции, как %CustomPageSize, %PSMemory и другие, имеют неограниченное количество возможных вариантов, что означает, что EnumOptions для них не поддерживается.

Для функций драйверов, которые в настоящее время не поддерживаются, или для поддерживаемых функций драйверов, которые не перечисляется через EnumOptions, EnumOptions возвращает E_NOTIMPL.

Кроме того, некоторые параметры функции драйвера могут не поддерживаться в определенных условиях. Например, если spooler EMF spooling отключен в windows 2000 и более поздних выпусках операционной системы, параметр "Booklet" не поддерживается для функции %PagePerSheet. Например, если принтер не имеет растризатора Type42, параметр NativeTrueType не поддерживается для %TTDownloadFormat. Эти неподдерживаемые параметры не отображаются в выходном списке ключевых слов EnumOptions.

Pscript обрабатывает следующие ключевые слова функций особым образом:

  • Ключевое слово компонента *CustomPageSize преобразуется в параметр ключевого слова *PageSize компонента, а "CustomPageSize" — ключевое слово параметра. Вызовите GetOptionAttribute для получения параметров PPD.

  • Запись *ManualFeed True преобразуется в параметр ключевого слова функции *InputSlot с именем ключевого слова параметра ManualFeed.

  • Для ключевого слова компонента *InputSlot Pscript всегда добавляет параметр, созданный драйвером, с именем ключевого слова "*UseFormTrayTable" в качестве первого варианта (префикс "*" используется в имени ключевого слова параметра, чтобы избежать возможного конфликта имен с параметрами, определенными PPD), за которым следует параметры, определенные в PPD. Если выбран параметр "*UseFormTrayTable", Pscript будет использовать таблицу назначения "форма — область" для автоматического выбора области бумаги, поддерживающей выбранный размер бумаги.