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


Функция 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, перехватывает внутреннее исключение и задает флаг для сбоя и завершения задания печати.

Замечания

Функция MxdcGetPDEVAdjust ment, реализованная поставщиком оборудования. 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, которое хранит значение DPI по умолчанию MXDC, — L"MxdcDotsPerInch".

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

Свойство (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 и значения данных для свойств:

Свойство (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

Значения:

Положительное значение для Dots на дюйм
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 (include Mxdc.h)

См. также

DrvEnablePDEV

GDIINFO

интерфейс IPrintOemUIMXDC