Функции драйвера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Функции драйвера — это функции, не относящиеся к PPD, которые синтезируются драйвером (например, компонент %OutputFormat ). Чтобы избежать конфликтов имен с ключевыми словами функции PPD, все имена ключевых слов функций драйвера предшествуют символу "%". Ключевые слова функции и параметра драйвера также чувствительны к регистру.
Чтобы получить список всех ключевых слов функций драйвера, поддерживаемых драйвером, подключаемый модуль может вызывать EnumFeatures, который вернет список ключевых слов функций, содержащий функции драйвера и функции PPD. После этого подключаемый модуль может искать имена ключевых слов функций, начинающиеся с префикса "%", чтобы получить список функций драйвера.
В следующей таблице перечислены поддерживаемые в настоящее время функции драйвера. Каждая строка в таблице содержит ключевое слово функции драйвера, отображает поддерживаемые параметры, указывает, можно ли перечислить параметры функции в вызове EnumOptions и краткое описание.
Функция драйвера | Поддерживаемые параметры | Параметры перечисления | Описание и комментарии |
---|---|---|---|
%AddEuro | "True" "False" |
Да | Добавьте символ Euro в шрифты устройств. Эта функция поддерживается только для принтеров уровня 2 и более поздних версий. Для принтеров уровня 1 SetOptions игнорирует эту функцию, и GetOptions всегда возвращает значение False. |
%CTRLDAfter | "True" "False" |
Да | Отправьте ctrl-D после каждого задания. Принтер-липкий |
%CTRLDBefore | "True" "False" |
Да | Перед каждым заданием отправьте ctrl-D. Принтер-липкий |
%CustomPageSize | Дополнительные сведения см. в примечание 1 ниже. | No | Укажите параметры настраиваемого размера страницы PostScript. Документ-наклейка |
%GraphicsTrueGray | "True" "False" |
Да | Преобразование серых рисунков в серый PostScript. Принтер-липкий |
%JobTimeout | Строка ANSI, завершающая значение NULL, содержащая десятичные символы, представляющая целое число без знака в секундах для времени ожидания, в диапазоне от 0 до 2 147 483 647. Для SetOptions дополнительные символы табуляции или пробела до или после десятичных цифр разрешены, но символ знака не допускается. |
No | Укажите значение времени ожидания задания. Принтер-липкий |
%MaxFontSizeAsBitmap | Строка ANSI, завершающая значение NULL, содержащая символы десятичной цифры, представляющая целое число без знака в диапазоне от 0 до 32 767. Для SetOptions дополнительные символы табуляции или пробела до или после десятичных цифр разрешены, но символ знака не допускается. |
No | Укажите максимальный размер шрифта для скачивания в виде растрового изображения. Принтер-липкий |
%MetafileSpooling | "True" "False" |
Да | Включение и отключение расширенных функций печати. Документ-наклейка Дополнительные сведения см. в примечание 2 ниже. |
%MinFontSizeAsOutline | Строка ANSI, завершающая значение NULL, содержащая символы десятичной цифры, представляющая целое число без знака в диапазоне от 0 до 32 767. Для SetOptions дополнительные символы табуляции или пробела до или после десятичных цифр разрешены, но символ знака не допускается. |
No | Укажите минимальный размер шрифта для скачивания в виде структуры. Принтер-липкий |
%Зеркальное отображение | "True" "False" |
Да | Зеркальные выходные данные путем отмены горизонтальных координат. Документ-наклейка |
%Отрицательный | "True" "False" |
Да | Создание отрицательных выходных данных путем отмены значений для черного и белого. Эта функция поддерживается только для черных и белых принтеров. Для цветных принтеров SetOptions игнорирует эту функцию, и GetOptions всегда возвращает значение False. Документ-наклейка |
%Orientation | "Книжный", "Альбом", "ВращаемыйLandscape" | Да | Укажите ориентацию вывода. Документ-наклейка |
%OutputFormat | "Скорость", "Переносимость", "EPS", "Архив" | Да | Укажите формат выходных данных PostScript. Документ-наклейка Дополнительные сведения см. в примечание 5 ниже. |
%OutputProtocol | "ASCII", "BCP", "TBCP", "Binary" | Да | Укажите протокол, используемый принтером для заданий печати. Предполагается, что принтеры PostScript поддерживают ASCII и Binary, поэтому эти параметры всегда доступны. Параметры BCP и ТБCP доступны только в том случае, если они поддерживаются. Чтобы определить это, проверьте глобальный атрибут Protocols. Принтер-липкий |
%OutputPSLevel | "1", "2", "3" | No | Укажите, какой уровень языка PostScript следует использовать для задания печати. Параметр никогда не будет больше значения, указанного в глобальном атрибуте LanguageLevel. Документ-наклейка |
%PageOrder | FrontToBack BackToFront |
Да | Укажите порядок печати страниц. Документ-наклейка Дополнительные сведения см. в примечание 3 ниже. |
%PagePerSheet | "1", "2", "4", "6", "9", "16", "Booklet" |
Да | Укажите количество логических страниц на физический лист. Эта функция также называется "N-up" печатью. Документ-наклейка Дополнительные сведения см. в примечание 4 ниже. |
%PSErrorHandler | "True" "False" |
Да | Отправка обработчика ошибок PostScript. Документ-наклейка |
%PSMemory | Строка ANSI, завершающая значение NULL, содержащая десятичные символы, представляющая целое число без знака памяти PostScript в диапазоне от 0 до 2 147 483 647. Для SetOptions дополнительные символы табуляции или пробела до или после десятичных цифр разрешены, но символ знака не допускается. |
No | Укажите объем доступной виртуальной памяти PostScript. Для обработки основного драйвера требуется определенное количество доступной виртуальной памяти PostScript. Если %PSMemory задано ниже этого минимума, минимальное значение используется в качестве нового значения. В настоящее время минимальное значение составляет 172 КБ для принтеров уровня 1 и 249 КБ для принтеров уровня 2+ . Принтер-липкий |
%TextTrueGray | "True" "False" |
Да | Преобразуйте серый текст в серый postScript. Принтер-липкий |
%TTDownloadFormat | "Automatic", "Outline", "Bitmap", "NativeTrueType" | Да | Укажите формат загрузки шрифта TrueType. Значение NativeTrueType поддерживается только в том случае, если глобальный атрибут TTRasterizer указывает на поддержку Type42. Документ-наклейка |
%WaitTimeout | Строка ANSI, завершающая значение NULL, содержащая десятичные символы, представляющая целое число без знака в секундах для времени ожидания, в диапазоне от 0 до 2 147 483 647. Для SetOptions дополнительные символы табуляции или пробела до или после десятичных цифр разрешены, но символ знака не допускается. |
No | Укажите значение времени ожидания ожидания. Принтер-липкий |
Заметки о ключевых словах компонентов драйвера
Функция драйвера %CustomPageSize имеет пять значений параметров: x, y, WidthOffset, HeightOffset и FeedDirection. Подробные сведения об этих параметрах см. в разделе 5.16 спецификации формата файла описания принтера PostScript версии 4.3.
Запись %CustomPageSize содержит ключевое слово %CustomPageSize, а также значения для параметров x, y, WidthOffset, HeightOffset и FeedDirection. Первым элементом является ключевое слово %CustomPageSize, за которым следует символ NULL. Значения x, y, WidthOffset и HeightOffset следуют этому ключевому слову и отображаются как подстроки без знака десятичных разрядов, каждая из которых представляет количество точек PostScript для соответствующего значения параметра. За каждым из этих числовых значений следует один или несколько пробелов или символов табуляции. Последний элемент в строке — это значение для FeedDirection, которое завершается символом NULL. Параметры FeedDirection: LongEdge, ShortEdge (соответствующие ориентациям 0 и 1) и LongEdgeFlip, ShortEdgeFlip (соответствующие ориентациям 2 и 3). Проверьте ключевое слово функции *LeadingEdge PPD для поддерживаемых направлений веб-канала.
Для GetOptions выходной буфер, указывающий на pmszFeatureOptionBuf , как описано в предыдущем абзаце. В следующем примере значение x равно 612, значение y равно 792, значения для WidthOffset и HeightOffset равны 0, а значение для FeedDirection — ShortEdge.
"%CustomPageSize\0612 792 0 0 ShortEdge\0"
Для SetOptions дополнительные символы табуляции или пробела до или после десятичных цифр разрешены, но символ знака не допускается. В противном случае входной буфер, на который указывает pmszFeatureOptionBuf , должен быть создан, как описано выше.
Функция драйвера %CustomPageSize поддерживается только в том случае, если выполнены все три из следующих условий:
PPD-файл содержит функцию *CustomPageSize .
Ключевое слово *PPD-Adobe имеет значение больше или равно 4.3 или *UseHWMargin: False указывается, чтобы указать устройство с откатом.
Параметр *PageSize PPD в данный момент выбран параметр CustomPageSize.
Эта функция поддерживается только в том случае, если включена функция spooler EMF.
Если этот параметр поддерживается, при установке параметра этой функции значение False приводит к изменению следующих функций, связанных с EMF:
Если %PagePerSheet имеет значение Booklet, оно изменилось на "1".
Если параметр Collate имеет значение True (который можно задать непосредственно в общедоступной части структуры DEVMODEW или вызовом SetOptions в компоненте *Collate PPD), но компонент Collate недоступен в настоящее время, Collate будет иметь значение False.
Если %PageOrder является противоположностью текущему параметру порядка вывода принтера, %PageOrder возвращается к значению принтера.
Эта функция поддерживается только в том случае, если включена функция spooler EMF.
Если она поддерживается, установка этой функции может привести к возникновению следующих причин:
Если PPD-файл принтера содержит ключевое слово функции *OutputOrder , то его выбор параметра изменяется на соответствие выходному порядку нового параметра для функции %PageOrder . Это делается, чтобы запретить spooler выполнять ненужное моделирование порядка страниц.
Если PPD-файл принтера не включает функцию *OutputOrder, а новый параметр для функции драйвера %PageOrder является противоположностью текущему параметру порядка вывода принтера, а функция драйвера %MetafileSpooling — False, то %MetafileSpooling сбрасывается на "True".
Параметр Booklet поддерживается только в том случае, если включена функция spooler EMF и функция Duplex доступна.
Если поддерживается параметр "Booklet", при настройке функции драйвера %PagePerSheet значение Booklet может привести к следующим изменениям:
Если компонент драйвера %MetafileSpooling имеет значение False, он сбрасывается на "True".
Если для функции *Duplex PPD задано значение None, функция *Duplex сбрасывается на первый параметр, отличный от Simplex, определенный в PPD-файле.
За исключением EPS (инкапсулированный PostScript), форматы, указанные в функции драйвера %OutputFormat , классифицируются в соответствии со следующими двумя характеристиками:
Не зависит ли выходной код PostScript от порядка страницы?
Содержит ли выходной код PostScript команды управления устройствами (которые обычно используют оператор setpagedevice )?
Категория Независимое от порядка страниц setpagedevice Архив Да Нет Портативность Да Да Скорость No Да
Если метод GetOptions вызывается в ключевых словах функции драйвера, если запрошенное ключевое слово функции не распознается, или если ключевое слово функции распознается, но не поддерживается в текущем режиме заполнения документа или принтера (см . раздел "Замена страниц страниц свойств, предоставленных драйвером"), функция просто будет игнорироваться, а выходной буфер не будет содержать пару ключевых слов функции и параметра.
Например, предположим, что вызывается метод GetOptions, а входной буфер pmszFeaturesRequested содержит следующую строку (в формате MULTI_SZ):
"Resolution\0%CustomPageSize\0Unknown_Name\0%Orientation\0\0"
После возврата GetOption выходной буфер pmszFeatureOptionBuf может содержать эту строку (также в формате MULTI_SZ):
"Resolution\0300dpi\0%CustomPageSize\0612 792 0 0 ShortEdge\0%Orientation\0RotatedLandscape\0\0"
Обратите внимание, что функция Unknown_Name (которая не существует) в первой строке не отображается во второй строке, так как она не распознана драйвером Pscript. Другие функции, resolution, %CustomPageSize и %Orientation, отображаются в выходной строке вместе со своими текущими параметрами, которые имеют значение "300dpi", "612 792 0 0 ShortEdge" и "RotatedLandscape" соответственно. Сведения о параметрах %CustomPageSize см. в разделе "Функции драйвера".
При вызове SetOptions на ключевые слова функции драйвера, если запрошенное ключевое слово компонента или ключевое слово параметра в входном буфере, на который указывает pmszFeatureOptionBuf , не распознается, или функция распознается, но не поддерживается в текущем режиме стики документа или принтера (см. раздел "Замена страниц листов свойств, предоставленных драйвером") или ключевое слово компонента и его ключевое слово параметра распознаются, но ключевое слово параметра недопустимо для этой функции (например, при попытке задать %TTDownloadFormat на принтере, который не поддерживает Type42 TTRasterizer), эта пара признаков и вариантов будет игнорироваться, и текущий параметр для этой функции будет продолжать действовать.
Порядок пар ключевых слов feature/option в буфере, на который указывает pmszFeatureOptionBuf, может повлиять на результат вызова SetOptions. Например, следующие два разных заказа имеют разные результаты.
pmszFeatureOptionBuf | %PagePerSheet | %MetafileSpooling |
---|---|---|
"%MetafileSpooling\0False\0%PagePerSheet\0Booklet\0\0" | "Booklet" | "True" |
"%PagePerSheet\0Booklet\0%MetafileSpooling\0False\0\0" | "1" | "False" |
Описание того, почему эти результаты происходят, см. в примечание 3 по %MetafileSpooling выше.