Функции PPD
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Функции PPD определяются в PPD-файле в парах ключевых слов структуры OpenUI/*CloseUI и в некоторых ключевых словах PPD, которые обрабатываются аналогично драйвером Pscript. Несмотря на то что EnumFeatures перечисляет ключевые слова *LeadingEdge и *UseHWMargins, они не определены в парах ключевых слов структуры PPD *OpenUI/*CloseUI.
Методы GetOptions и SetOptions игнорируют эти ключевые слова, если они отображаются в списке функций. Ключевые слова функции и параметра PPD чувствительны к регистру.
SetOptions обрабатывает определенные функции PPD особым образом:
Если PPD-файл принтера включает ключевое слово функции *OutputOrder и SetOptions вызывается для изменения выбора параметра для этой функции, то параметр компонента драйвера %PageOrder будет изменен, чтобы соответствовать новому порядку вывода. Это делается для того, чтобы запретить spooler выполнять ненужное моделирование порядка страниц.
Если PPD-файл принтера включает ключевое слово компонента *OutputBin и SetOptions, чтобы изменить выбор параметра для этой функции, а изменение приводит к тому, что текущий параметр функции драйвера %PageOrder будет противоположной упорядочению страниц принтера, а %MetafileSpooling — False, то %MetafileSpooling будет сброшено на "True".
Если включена spooler EMF spooling, и Collate имеет значение True (это может быть установлено непосредственно в общедоступной части структуры DEVMODEW или путем вызова SetOptions в ключевом слове компонента *Collate PPD), но функция Сортировки в настоящее время недоступна, и %MetafileSpooling имеет значение False, а %MetafileSpooling будет сбрасываться на "True". Это делается при применении всех запрошенных параметров в вызове SetOptions .
Если для дуплекса задано значение simplex (это можно задать непосредственно в общедоступной части структуры DEVMODE или путем вызова SetOptions в ключевом слове функции PPD *Duplex), но для %PagePerSheet задано значение "Booklet", то %PagePerSheet будет изменено на "2". Это делается при применении всех запрошенных параметров в вызове SetOptions .