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


структура ATTRIBUTE_INFO_4 (winsplp.h)

Структура ATTRIBUTE_INFO_4 используется в качестве параметра для функции DrvQueryJobAttributes библиотеки DLL интерфейса принтера. Все значения членов предоставляются функцией. Эта структура похожа на ATTRIBUTE_INFO_3, но включает в себя дополнительные элементы для управления N-up, дуплексной печатью и печатью буклетов, а также масштабированием.

Синтаксис

typedef struct _ATTRIBUTE_INFO_4 {
  DWORD dwJobNumberOfPagesPerSide;
  DWORD dwDrvNumberOfPagesPerSide;
  DWORD dwNupBorderFlags;
  DWORD dwJobPageOrderFlags;
  DWORD dwDrvPageOrderFlags;
  DWORD dwJobNumberOfCopies;
  DWORD dwDrvNumberOfCopies;
  DWORD dwColorOptimization;
  short dmPrintQuality;
  short dmYResolution;
  DWORD dwDuplexFlags;
  DWORD dwNupDirection;
  DWORD dwBookletFlags;
  DWORD dwScalingPercentX;
  DWORD dwScalingPercentY;
} ATTRIBUTE_INFO_4, *PATTRIBUTE_INFO_4;

Члены

dwJobNumberOfPagesPerSide

Количество страниц документов, размещаемых на одной стороне физической страницы в соответствии с запросом пользователя. Допустимые значения: 1, 2, 4, 6, 9 или 16.

dwDrvNumberOfPagesPerSide

Количество страниц документа, которые принтер и драйвер могут размещать на одной стороне физической страницы. Это значение должно быть 1 или значение, указанное для dwJobNumberOfPagesPerSide.

dwNupBorderFlags

Одно из следующих значений битового флага:

Флаг Определение
BORDER_PRINT Обработчик печати должен нарисовать границу вокруг страницы.
NO_BORDER_PRINT Обработчик печати не должен рисовать границу вокруг страницы.

dwJobPageOrderFlags

Одно из следующих значений битового флага:

Флаг Определение
BOOKLET_PRINT Страницы должны быть напечатаны в форме буклета с двумя страницами документов, напечатанными на одной стороне физической страницы. В альбомном режиме две страницы документа печатаются параллельно на бумаге. В книжном режиме две страницы документа печатаются сверху и снизу.
NORMAL_PRINT Страницы должны быть напечатаны в обычном порядке: страница 1, страница 2 и т. д.
REVERSE_PRINT Страницы должны печататься в обратном порядке: последняя страница, последняя страница и т. д.

dwDrvPageOrderFlags

Битовые флаги, указывающие, какие параметры упорядочивания страниц поддерживаются принтером и драйвером. Использует те же флаги, что и dwJobPageOrderFlags.

dwJobNumberOfCopies

Количество копий задания печати, запрошенных пользователем.

dwDrvNumberOfCopies

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

dwColorOptimization

Одно из следующих значений битового флага:

Флаг Определение
COLOR_OPTIMIZATION Процессор печати должен использовать монохромную оптимизацию цвета.
NO_COLOR_OPTIMIZATION Процессор печати не должен использовать монохромную оптимизацию цвета.

dmPrintQuality

Значение, используемое вместо члена dmPrintQuality в структуре DEVMODEW задания печати, если флаг COLOR_OPTIMIZATION задан в dwColorOptimization.

dmYResolution

Значение, используемое вместо члена dmYResolution в структуре DEVMODEW задания печати, если флаг COLOR_OPTIMIZATION задан в dwColorOptimization.

dwDuplexFlags

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

Флаг Определение
DONT_SEND_EXTRA_PAGES_FOR_DUPLEX Обработчик печати не должен отправлять лишние пустые страницы при дуплексной печати. Например, при отправке трехстраничного задания для дуплексной печати некоторые принтеры ожидают получения четырех страниц. При печати этого задания с установленным флагом обработчик печати отправляет только три страницы задания печати и не отправляет дополнительную пустую страницу.
REVERSE_PAGES_FOR_REVERSE_DUPLEX При печати в обратном дуплексном режиме обработчик печати должен менять порядок пар страниц. Например, если этот флаг установлен, обработчик печати должен печатать страницы в порядке 7, 8, 5, 6, 3, 4, 1, 2 вместо 8, 7, 6, 5, 4, 3, 2, 1.

Установите значение 0, если драйверу не требуются какие-либо из этих параметров.

dwNupDirection

Одно из следующих значений битового флага, используемых при печати n-up:

Флаг Определение
RIGHT_THEN_DOWN Обработчик печати должен предоставлять изображения страниц в последовательности слева направо, а затем вниз по последней печатной странице. Кроме того, установите это значение, если печать не требуется.
DOWN_THEN_RIGHT Обработчик печати должен предоставлять изображения страниц в последовательности сверху вниз, а затем слева направо на последней печатной странице.
LEFT_THEN_DOWN Обработчик печати должен предоставлять изображения страниц в последовательности справа налево, а затем вниз окончательной печатной страницы.
DOWN_THEN_LEFT Обработчик печати должен предоставлять изображения страниц в последовательности сверху вниз, а затем справа налево на последней печатной странице.

Этот флаг учитывается только в том случае, если dwJobNumberOfPagesPerSide и (или ) dwDrvNumberOfPagesPerSide указывают на то, что печать n-up активна. Дополнительные сведения см. в описании выше для dwJobNumberOfPagesPerSide и dwDrvNumberOfPagesPerSide.

dwBookletFlags

Если dwJobPageOrderFlags имеет значение BOOKLET_PRINT, одно из следующих значений:

Флаг Определение
BOOKLET_EDGE_LEFT Обработчик печати должен печатать страницы в макете буклета слева направо, где граница окончательного сложенного буклета находится по левому краю страницы 1.
BOOKLET_EDGE_RIGHT Обработчик печати должен печатать страницы в макете буклета справа налево, где граница окончательного сложенного буклета находится по правому краю страницы 1.

Если параметру dwJobPageOrderFlags не присвоено значение BOOKLET_PRINT, параметру dwBookletFlags присваивается значение 0.

Этот флаг учитывается, только если члену dwJobPageOrderFlags присвоено значение BOOKLET_PRINT.

dwScalingPercentX

Процент масштабирования в горизонтальном (x) направлении относительно обычного размера бумаги. Должен находиться в диапазоне от 1 до 1000. Установите значение 100, если масштабирование не будет выполнено.

Чтобы обеспечить прогнозируемые результаты печати, dwScalingPercentX и dwScalingPercentY должны иметь одинаковое значение.

dwScalingPercentY

Процент масштабирования в вертикальном направлении (y) по отношению к обычному размеру бумаги. Должен находиться в диапазоне от 1 до 1000. Установите значение 100, если масштабирование не будет выполнено.

Чтобы обеспечить прогнозируемые результаты печати, dwScalingPercentX и dwScalingPercentY должны иметь одинаковое значение.

Комментарии

Если элемент dmPrintQuality в структуре DEVMODEW задания печати является отрицательным значением, например DMRES_HIGH, и если включена монохромная оптимизация цвета, переключение между цветом и монохромной может привести к использованию различных разрешений. Это связано с тем, что DMRES_HIGH могут быть назначены различным значениям DPI для цветной и монохромной отрисовки. (Для устройств с поддержкой Unidrv это назначение происходит в файле GPD принтера.) Чтобы обеспечить согласованное разрешение во всем задании печати, драйвер может указать положительные значения dmPrintQuality и dmYResolution (представляющие определенное разрешение на дюйм), чтобы переопределить эквивалентные значения DEVMODEW .

Обработчик печати EMF использует флаг, указанный для dwColorOptimization , чтобы определить, следует ли запрашивать GDI для выполнения монохромной оптимизации цвета. Если включена оптимизация монохромных цветов, задание печати можно переключать между монохромной и цветной отрисовкой соответствующим образом.

Если вы создаете подключаемый модуль отрисовки Unidrv для создания цветных подложек, обратите внимание, что если для элемента dwColorOptimization задано значение COLOR_OPTIMIZATION, цветные водяные знаки печатаются черно-белым цветом при печати в черно-белых документах. Чтобы цветные подложки правильно печатались в цветных и черно-белых документах, отключите оптимизацию цвета. Оптимизация цвета также может управляться атрибутом цвета Unidrv *ChangeColorModeOnDoc? (см. раздел Атрибуты цвета) и функцией GdiEndPageEMF .

Список значений по умолчанию для ATTRIBUTE_INFO_4 членов см. в разделе GetJobAttributesEx.

Эта структура доступна в Windows Vista.

Требования

Требование Значение
Заголовок winsplp.h (включая Winddiui.h, Winsplp.h)

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

ATTRIBUTE_INFO_2

ATTRIBUTE_INFO_3

DrvQueryJobAttributes

GdiEndPageEMF

GetJobAttributesEx