структура 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) |