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


Новые атрибуты PPD только для корневого уровня для Windows Vista

Внимание

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

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

В следующем списке описаны атрибуты PPD, которые начинаются с Windows Vista. Чтобы обеспечить обратную совместимость с версиями Windows Vista до Windows, следует окружать эти атрибуты следующим кодом.

*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks

MSPrintSchemaKeywordMap

Атрибут MSPrintSchemaKeywordMap определяет сопоставление из ключевого слова компонента PPD с ключевым словом общедоступной функции схемы печати или сопоставление ключевого слова параметра PPD функции PPD с открытым ключевым словом параметра схемы печати функции печати.

MSPrintSchemaKeywordMap имеет два допустимых формата:

Формат 1

*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword *<PPD_feature_keyword>

Формат 2

*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword PrintSchema_option_keyword *<PPD_feature_keyword> <PPD_option_keyword>

Требуется префикс ключевого слова функции PPD (который является звездочкой [*]) в обоих форматах.

Для формата 1:

  • Ключевое слово функции PPD должно ссылаться на функцию PPD, которая уже определена в предыдущем содержимом ФАЙЛА PPD.

  • Несколько определений *MSPrintSchemaKeywordMap для одной функции PPD запрещены. Если найдено несколько определений, будет принято только первое определение, и другие определения будут игнорироваться.

Для формата 2:

  • Определение *MSPrintSchemaKeywordMap для функции PPD (с использованием формата 1) должно присутствовать перед любым определением *MSPrintSchemaKeywordMap для параметров функции PPD.

  • В определении *MSPrintSchemaKeywordMap для параметра PPD сопоставление ключевого слова функции PPD с ключевым словом функции печати должно совпадать с тем, что определено в предыдущем определении *MSPrintSchemaKeywordMap для функции PPD (с использованием формата 1).

  • Ключевое слово параметра PPD должно ссылаться на параметр функции PPD, которая уже определена в предыдущем содержимом PPD-файла.

  • Несколько определений *MSPrintSchemaKeywordMap для одного и того же параметра PPD функции PPD запрещены. Если найдено несколько определений, будет принято только первое определение, и другие определения будут игнорироваться.

Если запись *MSPrintSchemaKeywordMap нарушает какие-либо из предыдущих правил форматирования, эта запись будет игнорироваться, и вы получите предупреждение ppdchecker с подробными сведениями.

*MSPrintSchemaKeywordMap не поддерживается для использования со следующими стандартными функциями PPD:

*Сортировка *Duplex *InputSlot *OutputBin *PageSize *Resolution *MediaType Также важно знать, что если вы сопоставляете функцию с ключевым словом "Схема печати", которое уже используется в PPD-файле, соответствующий документ PrintCapabilities может перечислить эту функцию более одного раза. Несколько вхождений могут быть запутаны, поэтому не следует сопоставлять функции с ключевыми словами схемы печати, которые используются в PPD-файле.

Средство синтаксического анализа PPD автоматически создает параметр FORMSOURCE для функции InputBin и сопоставляет его с ключевым словом AutoSelect в схеме печати. Если файл PPD содержит параметр InputBin, использующий атрибут MSPrintSchemaKeywordMap для сопоставления параметра с ключевым словом "Схема печати", функция в схеме печати будет содержать параметр FORMSOURCE в пространстве имен устройства. Функция автосбора появится в документе PrintCapabilities и ссылается на параметр, указанный в атрибуте MSPrintSchemaKeywordMap файла PPD.

В следующем примере кода показан пример атрибута MSPrintSchemaKeywordMap в частичном PPD-файле.

*OpenUI *IHVStapling:PickOne
*DefaultIHVStapling:Disabled
*IHVStapling Enabled:"..."
*IHVStapling Disabled:"..."
*CloseUI: *IHVStapling

*MSPrintSchemaKeywordMap: Staple*IHVStapling
*MSPrintSchemaKeywordMap: StapleOn*IHVStaplingEnabled
*MSPrintSchemaKeywordMap: StapleOff*IHVStaplingDisabled

MSPrintSchemaPrivateNamespaceURI

Атрибут MsPrintSchemaPrivateNamespaceURI определяет URI частного пространства имен, который основной драйвер должен использовать для предоставления частных функций PPD или параметров в PrintTicket или PrintCapabilities. Этот URI будет применен к любым функциям или параметрам, которые не имеют явного сопоставления (с помощью определения *MSPrintSchemaKeywordMap ) в общедоступную схему печати.

MSPrintSchemaPrivateNamespaceURI использует следующий формат.

*MSPPrintSchemaPrivateNamespaceURI: "<URI>"

<Универсальный код ресурса (URI> ) представляет ppD QuotedValue. Как определено спецификацией PPD, QuotedValue позволяет использовать как подстроки ASCII, так и шестнадцатеричные подстроки.

Файл PPD модели одного принтера (или файлы) должен иметь только одно определение *MSPrintSchemaPrivateNamespaceURI . Если найдено несколько определений, будет принято только первое определение, и другие будут игнорироваться.

В следующем примере кода показан пример атрибута MsPrintSchemaPrivateNamespacespaceURI в частичном PPD-файле.

*MSPrivateNamespaceURI:  "https://www.ihv.com/schema/2004"

MSIsXPSDriver

Атрибут MSIsXPSDriver использует следующий формат.

*MSIsXPSDriver:  True | False

Вы можете использовать модуль конфигурации драйвера Windows Vista PScript5 (Ps5ui.dll) для драйверов GDI Microsoft Win32 и новых драйверов XPSDrv. Чтобы использовать модуль конфигурации драйвера PScript5 для драйверов XPSDrv, файл данных PPD драйвера XPSDrv должен указать MSIsXPSDriver и задать для него значение True.

В следующем примере кода показан пример этого атрибута в частичном PPD-файле:

*MSIsXPSDriver: True

Чтобы использовать модуль конфигурации драйвера PScript5 для драйверов Win32 GDI, не нужно указывать этот атрибут PPD.

MSPrintProcDuplexOptions

Атрибут MSPrintProcDuplexOptions использует следующий формат.

*MSPrintProcDuplexOptions:  "int"

Этот атрибут может иметь одно из следующих значений:

1. Обратные страницы для обратного дуплексного

2. Отключение создания дополнительной пустой страницы, если это возможно

3. Оба из перечисленных выше

0: ни один из указанных выше

В следующем примере кода показан пример MSPrintProcDuplexOptions в частичном PPD-файле.

*MSPrintProcDuplexOptions:  "2" 

Этот атрибут управляет различными дуплексами в обработчике печати.

Если MSPrintProcDuplexOptions равно 1, он определяет, должен ли обработчик печати перевернуть страницы на обратном дуплексе.

Предположим, что необходимо распечатать четырехстраничный документ с n-up = 1, и вы хотите использовать обратную печать и дуплексную печать. Так как требуется обратная печать, необходимо распечатать последнюю страницу перед первой страницей. Так как требуется дуплексная печать, вы хотите напечатать две страницы на одном листе бумаги. Обработчик печати может воспроизводить страницы в одном из следующих двух форматов (где каждая пара чисел указывает на две страницы, которые будут печататься на двух сторонах одного листа бумаги):

  • Формат 1: (4,3),(2,1)

  • Формат 2: (3,4),(1,2)

Перед Windows Vista обработчик печати будет печатать страницы в формате 2 [(3,4),(1,2)]. Но в Windows Vista и более поздних версиях формат по умолчанию имеет формат 1 [(4,3),(2,1)]. Это изменение произошло, так как многие принтеры имеют неправильные выходные данные с форматом 2; То есть страницы, которые печатаются, не упорядочены в правильном порядке.

Если принтер работает правильно с форматом 1, вам не потребуется ничего изменить для Windows Vista и более поздних версий. Однако если принтер работает неправильно с форматом 1, и вы хотите вернуться к формату 2, добавьте атрибут MSPrintProcDuplexOptions со значением 1.

*MSPrintProcDuplexOptions: "1"

Для драйвера PScript до Windows Vista, если у вас есть обработчик печати Windows Vista, формат 2 используется по умолчанию, и вы не можете изменить поведение; В противном случае, если у вас есть процессор печати Windows Vista, формат 1 является значением по умолчанию, и вы не можете изменить поведение.

Для драйвера Windows Vista PScript. Если у вас есть обработчик печати Windows Vista, формат 2 используется по умолчанию, а атрибут PPD будет игнорироваться; В противном случае, если у вас есть обработчик печати Windows Vista, формат 1 по умолчанию, но вы можете изменить формат с помощью атрибута MSPrintProcDuplexOptions .

Если MSPrintProcDuplexOptions равно 2, обработчик печати отключит создание пустых страниц в определенных дуплексных сценариях.

Например, если задание является одностраничного задания и дуплекс находится (предположим, n-up = 1), необходимо распечатать только одну сторону листа. В настоящее время принтеры будут печатать одну сторону, а затем создать пустую пустую страницу на обратной стороне. (Так как задание печати было запущено с дуплекс=on, принтер ожидает две страницы, прежде чем он извлекает лист. Если вторая страница не печатается, некоторые принтеры продолжают ждать.) Недостатки текущего решения:

  • Созданная страница приводит к неточному количеству страниц в программном обеспечении учета и счетчике страниц в принтерах.

  • Когда страница выходит на полпути из принтера (в некоторых принтерах Hewlett Packard DeskJet), пользователь может попытаться вытащить его, пока принтер пытается вернуть его обратно. Эта ситуация может вызвать проблемы с оборудованием.

Чтобы избежать предыдущих проблем, укажите *MSPrintProcDuplexOptions: "2" в PPD-файле.

Обратите внимание, что даже если этот атрибут задан, оптимизация пустой страницы выполняется только в следующих ограниченных случаях:

  1. Для обратной печати оптимизация пустой страницы выполняется только в том случае, если все задание может поместиться на одной стороне бумаги (например, задание одной страницы с n-up=1 или четырехстраничные задания с n-up =4). Если задание требует более одного листа, оптимизация не выполняется (так как страницы принтера будут напечатаны в неточном порядке). Например, для трехстраничного задания страницы могут быть напечатаны в порядке 3,2,1,пустая<> вместо 4,3,2,пустая<>.

  2. Оптимизация пустой страницы не выполняется, если обработчик печати должен имитировать копии. Обработчик печати имитирует копии, если необходимое количество копий превышает количество копий, которые может сделать обработчик печати.

    Следующая ситуация является примером возникновения имитации и создания пустых страниц (при необходимости):

    • Две копии принтера, которые не могут создавать копии

    Ниже приведены примеры того, когда имитация не возникает, и вы можете отключить дополнительное поколение страниц.

    • Одно задание копирования для принтера, которое не может создавать копии
    • Задание пяти копирования для принтера, которое может создавать больше копий

Для драйвера PScript до Windows Vista, если у вас есть обработчик печати Windows Vista, принтер будет печатать дополнительную пустую страницу, если это необходимо, и вы не сможете изменить поведение; В противном случае, если у вас есть процессор печати Windows Vista, принтер будет печатать дополнительную пустую страницу, если это необходимо, и вы не сможете изменить поведение.

Для драйвера Windows Vista PScript. Если у вас есть обработчик печати Windows Vista, принтер будет печатать дополнительную пустую страницу, если это необходимо, и атрибут PPD будет игнорироваться; В противном случае, если у вас есть обработчик печати Windows Vista, и если соответствующий атрибут PPD и соответствующие условия присутствуют (т. е. условия, описанные ранее о предотвращении пустой печати страниц), принтер не будет печатать пустые страницы.

MSBidiQueryFile

Атрибут MSBiDiQueryFile использует следующий формат.

*MSBidiQueryFile: "filename"

Используйте MSBiDiQueryFile , чтобы указать имя файла GPD или GDL, содержащего данные auto-config драйвера принтера BidiQuery и BidiResponse. Имя файла GPD или GDL не должно указывать путь.

В следующем примере кода показан пример MSBiDiQueryFile в частичном PPD-файле.

*MSBidiQueryFile: "ACnfgPS.GDL"

MSXPSMaxCopies

Атрибут MSXPSMaxCopies использует следующий формат.

*MSXPSMaxCopies: "int"

Используйте MSXPSMaxCopies , чтобы указать максимальное количество копий, которые может поддерживать драйвер принтера XPSDrv.

В следующем примере кода показан пример MSXPSMaxCopies в частичном PPD-файле.

*MSXPSMaxCopies: "99"