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


Функция MxdcGetPDEVAdjustment (mxdc.h)

Функция MxdcGetPDEVAdjustment экспортируется библиотекой DLL интерфейса принтера и предоставляет данные конфигурации принтера для Microsoft XPS Document Converter (MXDC).

Синтаксис

HRESULT MxdcGetPDEVAdjustment(
  [in]           HANDLE                    hPrinter,
  [in]           ULONG                     cbDevMode,
  [in]           const DEVMODE             *pDevMode,
  [in]           ULONG                     cbIn,
  [in, optional] const VOID                *pvIn,
  [in]           ULONG                     cbPrintPropertiesCollection,
                 PrintPropertiesCollection *pPrintPropertiesCollection
);

Параметры

[in] hPrinter

Дескриптор текущего экземпляра принтера.

[in] cbDevMode

Размер структуры DEVMODE в байтах, включая частные данные DEVMODE драйвера.

[in] pDevMode

Копия структуры DEVMODE, полученной MXDC. Библиотека DLL интерфейса принтера использует сведения из этой структуры для возврата запрошенных данных.

[in] cbIn

Входной параметр, указывающий размер параметра pvIn в байтах. Этот параметр в настоящее время не используется, и его значение равно нулю.

[in, optional] pvIn

Параметр, состоящий из данных, отправляемых в библиотеку DLL интерфейса принтера из MXDC. Этот параметр в настоящее время не используется, и его значение равно NULL.

[in] cbPrintPropertiesCollection

Размер структуры данных PrintPropertiesCollection в байтах.

pPrintPropertiesCollection

Структура данных PrintPropertiesCollection , из которой библиотека DLL интерфейса принтера получает запрошенные данные. Эта структура определена в WinSpool.h. Запрошенные поля могут быть предварительно заполнены данными MXDC по умолчанию. Библиотека DLL интерфейса принтера должна игнорировать поля, которые она не понимает.

Возвращаемое значение

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

Код возврата Описание
S_OK Библиотека DLL интерфейса принтера успешно вернула скорректированную область изображения, тип сжатия или DPI на основе заданной структуры DEVMODE. MXDC проверит возвращаемую снимаемую область, а затем использует ее для заполнения структуры GDIINFO соответствующими полями.
E_NOTIMPL Функция MxdcGetPDEVAdjustment не реализована в интерфейсе принтера. Интерфейс принтера не должен изменять поля, которые он не поддерживает. MxDC по умолчанию использует текущие значения по умолчанию. Для регистра области изображения MXDC по умолчанию использует физический размер страницы. Для параметра сжатия MXDC по умолчанию используется среднее сжатие JPEG.
E_FAIL Для этого или любых других значений сбоя MXDC возвращает -1 в функцию DrvEnablePDEV , перехватывает внутреннее исключение и устанавливает флаг сбоя и завершает задание печати.

Комментарии

Функция MxdcGetPDEVAdjustment реализуется поставщиком оборудования. MXDC вызывает эту функцию для получения данных конфигурации принтера в виде контейнера свойств, включающего следующие данные:

MXDC позволяет библиотеке DLL интерфейса принтера настраивать DPI с помощью функции MxdcGetPDEVAdjustment , только если поле dmPrintQuality задания печати имеет значение меньше или равно 0. Если значение DPI не скорректировано, MXDC сопоставляет отрицательные значения dmPrintQuality со следующими разрешениями.

Имя GDI (Wingdi.h) Значение GDI(Wingdi.h) Интерпретация по умолчанию MXDC (точек на дюйм)
DMRES_HIGH –4 2400
DMRES_MEDIUM –3 1200
DMRES_LOW -2 600
DMRES_DRAFT -1 400

Имя свойства MXDC, в котором хранится значение разрешения MXDC по умолчанию, — L"MxdcDotsPerInch".

В следующей таблице перечислены типы свойств MXDC и поля контейнера свойств для свойств.

Property (propertyName) Тип свойства (ePropertyValue) Поля контейнера свойств
L"MxdcImageableArea" kPropertyTypeBuffer PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.cbBuf = sizeof(RECT) PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.pBuf
L"MxdcImageCompressionType" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32
L"MxdcDotsPerInch" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32
L"MxdcLandscapeRotation" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32

В следующей таблице перечислены поддерживаемые типы данных MXDC и значения данных для свойств :

Property (propertyName) Типы данных и значения
L"MxdcImageableArea" Тип данных: RECT

Значения:

RECT::left (то же, что и FORM_INFO_1)

RECT::right (то же, что и FORM_INFO_1)

RECT::top (совпадает с FORM_INFO_1)

RECT::bottom (совпадает с FORM_INFO_1)
L"MxdcImageCompressionType" Тип данных: LONG

Значения:

1 = высокое сжатие JPEG

2 = среднее сжатие JPEG

3 = низкое сжатие JPEG

4 = сжатие PNG
L"MxdcDotsPerInch" Тип данных: LONG

Значения:

Положительное значение для точек на дюйм
L"MxdcLandscapeRotation" Тип данных: LONG

Значения:

90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES

0 = MXDC_LANDSCAPE_ROTATE_NONE

-90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES

Функция MxdcGetPDEVAdjustment не является частью MXDC. MXDC вызывает эту функцию в библиотеке DLL конфигурации драйвера, чтобы получить данные для настройки принтера.

MXDC ожидает, что область изображения будет выражена в некоротированных координатах (книжная ориентация). MXDC поворачивает размер страницы и область изображения в соответствии со значением члена dmOrientation структуры DEVMODE, на которую указывает pDevMode. Таким образом, реализация MxdcGetPDEVAdjustment поставщиком оборудования должна избегать указания области для изображения в повернутых координатах (альбомная ориентация), так как это приведет к неправильной печати заданий альбомной печати.

Значением по умолчанию в MXDC будет MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, что является его текущим устаревшим поведением.

Весь поворот будет выполняться в области, допускаемой для изображения. Если компонент конфигурации (UniDrv/PostScript, XPSDrv Monolithic) не понимает новые значения контейнера свойств, он должен игнорировать их, как в текущей структуре.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть mxdc.h (включая Mxdc.h)

См. также раздел

DrvEnablePDEV

GDIINFO

Интерфейс IPrintOemUIMXDC