estrutura ATTRIBUTE_INFO_4 (winddiui.h)

A estrutura ATTRIBUTE_INFO_4 é usada como um parâmetro para a função DrvQueryJobAttributes de uma interface de impressora. Todos os valores de membro são fornecidos por função. Essa estrutura é semelhante a ATTRIBUTE_INFO_3, mas inclui membros adicionais para controlar n-up, duplex e impressão de livretos e dimensionamento.

Sintaxe

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;

Membros

dwJobNumberOfPagesPerSide

Número de páginas de documento a serem colocadas em um lado de uma página física, conforme solicitado pelo usuário. Os valores permitidos são 1, 2, 4, 6, 9 ou 16.

dwDrvNumberOfPagesPerSide

Número de páginas de documento que a impressora e o driver podem colocar em um lado de uma página física. Esse valor deve ser 1 ou o valor especificado para dwJobNumberOfPagesPerSide.

dwNupBorderFlags

Um dos seguintes valores de sinalizador de bit:

Sinalizador Definição
BORDER_PRINT O processador de impressão deve desenhar uma borda ao redor da página.
NO_BORDER_PRINT O processador de impressão não deve desenhar uma borda ao redor da página.

dwJobPageOrderFlags

Um dos seguintes valores de sinalizador de bit:

Sinalizador Definição
BOOKLET_PRINT As páginas devem ser impressas no formato de livreto, com duas páginas de documento impressas em um lado de uma página física. No modo paisagem, as duas páginas de documento são impressas lado a lado no papel. No modo retrato, as duas páginas de documento são impressas de cima para baixo.
NORMAL_PRINT As páginas devem ser impressas em ordem normal: página 1, página 2 e assim por diante.
REVERSE_PRINT As páginas devem ser impressas em ordem inversa: última página, próxima à última página e assim por diante.

dwDrvPageOrderFlags

Sinalizadores de bits que indicam quais opções de ordenação de página são compatíveis com a impressora e o driver. Usa os mesmos sinalizadores que dwJobPageOrderFlags.

dwJobNumberOfCopies

Número de cópias do trabalho de impressão, conforme solicitado pelo usuário.

dwDrvNumberOfCopies

Número máximo de cópias que a impressora e o driver podem manipular de uma só vez, levando em conta atributos de trabalho como agrupamento e stapling.

dwColorOptimization

Um dos seguintes valores de sinalizador de bit:

Sinalizador Definição
COLOR_OPTIMIZATION O processador de impressão deve usar a otimização de cores monocromática.
NO_COLOR_OPTIMIZATION O processador de impressão não deve usar a otimização de cores monocromática.

dmPrintQuality

Valor a ser usado em vez do membro dmPrintQuality da estrutura DEVMODEW do trabalho de impressão, se o sinalizador COLOR_OPTIMIZATION estiver definido em dwColorOptimization.

dmYResolution

Valor a ser usado em vez do membro dmYResolution da estrutura DEVMODEW do trabalho de impressão, se o sinalizador COLOR_OPTIMIZATION estiver definido em dwColorOptimization.

dwDuplexFlags

Um dos seguintes valores de sinalizador de bit usados na impressão duplex:

Sinalizador Definição
DONT_SEND_EXTRA_PAGES_FOR_DUPLEX O processador de impressão não deve enviar páginas em branco extras ao imprimir duplex. Por exemplo, se você enviar um trabalho de três páginas para impressão duplex, algumas impressoras esperam receber quatro páginas. Se você imprimir esse trabalho no Microsoft Windows XP ou no Windows Server 2003, o processador de impressão enviará quatro páginas para a impressora por padrão (a quarta página é uma página em branco). Se você imprimir esse trabalho no Windows Vista com esse sinalizador definido, o processador de impressão enviará apenas as três páginas do trabalho de impressão e não enviará a página extra em branco.
REVERSE_PAGES_FOR_REVERSE_DUPLEX O processador de impressão deve inverter a ordem dos pares de página ao imprimir no modo duplex reverso. Por exemplo, quando esse sinalizador é definido, o processador de impressão deve imprimir páginas na ordem 7, 8, 5, 6, 3, 4, 1, 2 em vez de 8, 7, 6, 5, 4, 3, 2, 1.

Defina como 0 se o driver não exigir nenhuma dessas opções.

dwNupDirection

Um dos seguintes valores de sinalizador de bits usados na impressão N-up:

Sinalizador Definição
RIGHT_THEN_DOWN O processador de impressão deve fornecer imagens de página em sequência da esquerda para a direita e, em seguida, para baixo na página impressa final. Também defina como esse valor se a impressão N-up não for necessária.
DOWN_THEN_RIGHT O processador de impressão deve fornecer imagens de página em sequência de cima para baixo e da esquerda para a direita na página impressa final.
LEFT_THEN_DOWN O processador de impressão deve fornecer imagens de página em sequência da direita para a esquerda e, em seguida, na página impressa final.
DOWN_THEN_LEFT O processador de impressão deve fornecer imagens de página em sequência de cima para baixo e da direita para a esquerda na página impressa final.

Esse sinalizador será considerado somente se dwJobNumberOfPagesPerSide e/ou dwDrvNumberOfPagesPerSide indicarem que a impressão N-up está ativa. Para obter mais informações, consulte as descrições acima para dwJobNumberOfPagesPerSide e dwDrvNumberOfPagesPerSide.

dwBookletFlags

Se dwJobPageOrderFlags estiver definido como BOOKLET_PRINT, um dos valores a seguir.

Sinalizador Definição
BOOKLET_EDGE_LEFT O processador de impressão deve imprimir páginas em um layout de livreto da esquerda para a direita, em que a borda associada do livreto dobrado final está na borda esquerda da página um.
BOOKLET_EDGE_RIGHT O processador de impressão deve imprimir páginas em um layout de livreto da direita para a esquerda, em que a borda associada do livreto dobrado final está na borda direita da página um.

Se dwJobPageOrderFlags não estiver definido como BOOKLET_PRINT, dwBookletFlags será definido como 0.

Esse sinalizador será considerado somente se o membro dwJobPageOrderFlags estiver definido como BOOKLET_PRINT.

dwScalingPercentX

Percentual de dimensionamento na direção horizontal (x) em relação ao tamanho normal do papel. Deve estar no intervalo de 1 a 1000. Defina como 100 se o dimensionamento não for feito.

Para garantir resultados previsíveis de impressão, dwScalingPercentX e dwScalingPercentY devem ter o mesmo valor.

dwScalingPercentY

Percentual de dimensionamento na direção vertical (y) em relação ao tamanho normal do papel. Deve estar no intervalo de 1 a 1000. Defina como 100 se o dimensionamento não for feito.

Para garantir resultados previsíveis de impressão, dwScalingPercentX e dwScalingPercentY devem ter o mesmo valor.

Comentários

Se o membro dmPrintQuality da estrutura DEVMODEW de um trabalho de impressão for um valor negativo, como DMRES_HIGH e se a otimização de cores monocromática estiver habilitada, alternar entre cor e monocromático poderá resultar no uso de resoluções diferentes. Isso ocorre porque DMRES_HIGH pode ser atribuído a diferentes valores de DPI para renderização monocromática e de cor. (Para dispositivos com suporte unidrv, essa atribuição ocorre no arquivo GPD da impressora.) Para garantir uma resolução consistente em todo o trabalho de impressão, o driver pode especificar valores positivos dmPrintQuality e dmYResolution (representando uma resolução de DPI específica) para substituir os valores de DEVMODEW equivalentes.

O processador de impressão EMF usa o sinalizador especificado para dwColorOptimization para determinar se o GDI deve ser solicitado a executar a otimização de cores monocromática. Se a otimização de cores monocromática estiver habilitada, o trabalho de impressão poderá ser alternado entre a renderização monocromática e de cores conforme apropriado.

Se você estiver criando um plug-in de renderização Unidrv para gerar marcas d'água coloridas, observe que quando o membro dwColorOptimization é definido como COLOR_OPTIMIZATION, as marcas d'água coloridas são impressas em preto e branco quando são impressas em documentos em preto e branco. Para garantir que as marcas d'água coloridas imprimam corretamente com documentos de cor e preto e branco, desabilite a otimização de cores. A otimização de cores também pode ser controlada pelo atributo de cor Unidrv *ChangeColorModeOnDoc? (consulte Atributos de cor) e pela função GdiEndPageEMF .

Para obter uma lista de valores padrão para membros ATTRIBUTE_INFO_4, consulte GetJobAttributesEx.

Requisitos

Requisito Valor
Cabeçalho winddiui.h (inclua Winddiui.h, Winsplp.h)

Confira também

ATTRIBUTE_INFO_2

ATTRIBUTE_INFO_3

DrvQueryJobAttributes

GdiEndPageEMF

GetJobAttributesEx