Атрибуты возможностей принтера
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Атрибуты возможностей принтера — это общие атрибуты печати, которые указывают такие характеристики принтера, как поле страницы, поворот и возможность печати текста, влияющие на все размеры бумаги и ориентации.
Attribute name | Параметр атрибута | Комментарии |
---|---|---|
MemoryUsage | СПИСОК констант, указывающих типы данных, хранящиеся в памяти принтера. Может быть одним или несколькими: FONT RASTER VECTOR. Если тип данных указан, но не поддерживается принтером, он игнорируется. | Необязательно. Если значение не указано, значение по умолчанию — LIST(FONT, RASTER, VECTOR). Дополнительные сведения см. в разделе "Описание конфигураций памяти принтера". |
OEMCustomData | В кавычках текстовая строка, которую необходимо предоставить подключаемым модулем отрисовки при вызове IPrintOemDriverUni::D rvGetGPDData. | Требуется, если подключаемый модуль отрисовки вызывает IPrintOemDriverUni::D rvGetGPDData. Интерпретация содержимого текстовой строки определяется подключаемым модулем отрисовки. Этот атрибут является перемещаемым глобальным атрибутом; Он может быть помещен на корневом уровне (см . атрибуты только для корневого уровня), чтобы указать, что он не зависит от конфигурации принтера, или может отображаться в конструкциях Option или Case, если есть некоторая зависимость. |
OutputOrderReversed? | ЗНАЧЕНИЕ TRUE или FALSE, указывающее, отсортированы ли многостраничные документы с последней страницы на первую. | Необязательно. Если значение по умолчанию не указано, значение по умолчанию равно FALSE. Символ EXTERN_GLOBAL не следует использовать с OutputOrderReversed?. |
ReselectFont | СПИСОК констант, указывающих на операции, после которых Unidrv должен повторно выполнить выбор текущего шрифта. Можно использовать следующее: AFTER_GRXDATA — после любых команд выбросов растровых данных CmdSendXxxData. AFTER_XMOVE — после любых команд курсора x-перемещения. AFTER_FF — после команды CmdFF. | Необязательно. Если не указано, Unidrv не изменяет выбор шрифтов. |
ReverseBandOrderForEvenPages? | ЗНАЧЕНИЕ TRUE или FALSE, указывающее, включена ли обратная полоса. Этот атрибут используется для поддержки принтеров с возможностью автодуплексии; то есть принтеры, которые могут печатать на обеих сторонах листа бумаги. В разделе ниже этой таблицы содержатся дополнительные сведения. | Значение по умолчанию этого атрибута равно FALSE. Установка этого атрибута в значение TRUE включает обратный порядок переключения. Этот атрибут является перемещаемым глобальным атрибутом. Он может быть размещен на корневом уровне (см . атрибуты только для корневого уровня), чтобы указать, что он не зависит от конфигурации принтера, или может отображаться с конструкциями Option или Case, если есть некоторая зависимость. |
ПоворотCoordinate? | ЗНАЧЕНИЕ TRUE или FALSE, указывающее, поддерживает ли принтер команды для поворота системы координат в соответствии с ориентацией страницы. | Необязательно. Если значение по умолчанию не указано, значение по умолчанию равно FALSE. Если значение TRUE, записи параметра для функции ориентации должны указывать команды принтера. Не удается поместить в запись case. |
Поворот Фонта? | ЗНАЧЕНИЕ TRUE или FALSE, указывающее, автоматически ли принтер поворачивает шрифты в соответствии с ориентацией страницы. | Необязательно. Если значение по умолчанию не указано, значение по умолчанию равно FALSE. Если значение TRUE, то поворачиватьCoordinate? Также должно быть TRUE. Не удается поместить в запись case. |
ПоворотRaster? | ЗНАЧЕНИЕ TRUE или FALSE, указывающее, автоматически ли принтер поворачивает растровые данные в соответствии с ориентацией страницы. | Необязательно. Если значение по умолчанию не указано, значение по умолчанию равно FALSE. Если значение TRUE, то поворачиватьCoordinate? Также должно быть TRUE. Не удается поместить в запись case. |
TextCaps | СПИСОК констант, указывающих возможности текста принтера. Может состоять из одного или нескольких флагов TC_xxx, описанных в GetDeviceCaps. | Необязательно. Если не указано, Unidrv предполагает, что возможности текста не поддерживаются. |
Дополнительные сведения о ReverseBandOrderForEvenPages?
Побочным эффектом функции автодуплекса является то, что нижний край страницы, которая была напечатана, возвращается в принтер, чтобы стать верхним краем следующей страницы. Чтобы сохранить ориентацию второй страницы относительно первой, растровый образ второй страницы должен быть отправлен принтеру в обратном порядке. Другими словами, если принтер распечатал передний план, отправив первую линию сканирования сверху, он должен сначала распечатать обратную сторону нижней линии сканирования.
Если значение ReverseBandOrderForEvenPages? true и дуплексирование включено, Unidrv перечисляет каждую полосу в обратном порядке для четных страниц (задние стороны нечетных страниц). Подключаемый модуль отрисовки OEM должен кэшировать только одну полосу данных перед отправкой на принтер. Порядок строк сканирования в каждой полосе не изменился, поэтому подключаемый модуль должен по-прежнему обрабатывать эту задачу, и он также должен изменить порядок битов в каждой строке сканирования. Хотя это дополнительная работа для подключаемого модуля, преимущество заключается в том, что подключаемый модуль не должен кэшировать какие-либо растровые данные и может немедленно отправлять данные на принтер.
Атрибут ReverseBandOrderForEvenPages? вычисляется только в том случае, если дуплексирование имеет значение "Flip on Long Edge". Этот атрибут игнорируется, если для дуплексирования задано значение "Flip on Short Edge".
Значение атрибута ReverseBandOrderForEvenPages? и смоделированного драйвером поворота влияют на способ перечисления полос, показанных в следующей таблице. Порядок перечисления полосы, указанный в столбце, который направляется с помощью TRUE , применяется при выборе параметра ReverseBandOrderForEvenPages? и дуплексирование, а страница, которую нужно напечатать, является второй (или обратной) стороной. В противном случае столбец, возглавляемый с помощью FALSE , применяется.
Смоделированный драйвером поворот | Страница TRUE и четной страницы | Страница FALSE или Нечетная |
---|---|---|
CCW_ROTATE90 | SW_LTOR | SW_RTOL |
CCW_ROTATE270 | SW_RTOL | SW_LTOR |
Нет поворота | SW_UP | SW_DOWN |
Условные обозначения: SW_LTOR = слева направо, SW_RTOL = справа налево, SW_UP = вниз, SW_DOWN = сверху вниз.
Подключаемый модуль отрисовки OEM может поддерживать автодуплексирование без использования атрибута ReverseBandOrderForEvenPages? Подключаемый модуль может сделать это путем кэширования всех данных для всей страницы и отправки его на принтер, начиная с нижней строки сканирования. Эта строка сканирования и все остальные на этой странице должны быть отправлены в обратном порядке.
Подключаемый модуль отрисовки OEM отвечает за отмену порядка битов с каждой строкой сканирования и порядком строк сканирования с каждой полосой при отправке данных на принтер. Чтобы определить, когда это необходимо сделать, можно получить значение стандартной переменной PageNumber, выполнив вызов IPrintOemDriverUni::D rvGetStandardVariable, используя индекс SVI_PAGENUMBER. Если номер страницы нечетный, нет необходимости в обратном режиме. Если выбрано число даже и дуплексирование, требуется отмена.