Partilhar via


Alterações de comportamento da API Win32 DeviceCapabilities

Importante

A plataforma de impressão moderna é o meio preferido do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

Para obter mais informações, consulte Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.

Um driver Unidrv/PScript5 em execução no modo XPSDrv cria as seguintes alterações na função Microsoft Win32 DeviceCapabilities.

Quando um recurso ou opção GPD/PPD é mapeado para uma palavra-chave do Esquema de Impressão usando as palavras-chave PrintSchemaKeywordMap do GPD ou MSPrintSchemaKeywordMap do PPD, o GPD ou o PPD dão suporte a essa palavra-chave do esquema de impressão.

(Na tabela a seguir, "somente PS" significa que a alteração de comportamento é específica para um driver PScript5. "Somente Unidrv" significa que a alteração de comportamento é específica do driver Unidrv. Se ambas as frases não aparecerem, a alteração de comportamento se aplicará aos drivers Unidrv e PScript5.)

Funcionalidade Comportamento não XPSDrv Comportamento XPSDrv
DC_COPIES (Somente Unidrv) Quando o EMF está habilitado, DeviceCapabilities retorna um valor embutido em código que é o valor máximo de 9999 ou o valor *MaxCopies especificado do arquivo GPD.

Quando o EMF está desabilitado, DeviceCapabilities retorna o valor GPD*MaxCopies.

(Somente PS) DeviceCapabilities retorna um valor embutido em código de 9999.
(Somente Unidrv) DeviceCapabilities retorna o valor GPD *MaxCopis.

(Somente PS) DeviceCapabilities retornará o valor *MSXPSMaxCopies do arquivo PPD ou 1 se o valor não for especificado no arquivo PPD.
DC_TRUETYPE Para Unidrv, se a palavra-chave GPD *FontFormat for especificada, DeviceCapabilities retornará (DCTT_BITMAP | DCTT_DOWNLOAD); caso contrário, DeviceCapabilities retornará DCTT_BITMAP.

Para PS, DeviceCapabilities sempre retorna (DCTT_DOWNLOAD | DCTT_SUBDEV).
Se o GPD ou o PPD der suporte a um recurso com a palavra-chave "PageDeviceFontSubstitution" do Esquema de Impressão, o sinalizador DCTT_SUBDEV será definido no valor retornado.

Se o GPD ou o PPD der suporte a um recurso com a palavra-chave de esquema de impressão "PageTrueTypeFontMode", ocorrerá o seguinte:

Se o recurso der suporte a uma opção com a palavra-chave "DownloadAsOutlineFont" Print Schema, os sinalizadores DCTT_DOWNLOAD e DCTT_DOWNLOAD_OUTLINE serão definidos no valor retornado.

Se o recurso der suporte a uma opção com a palavra-chave de esquema de impressão "Automatic", "DownloadAsRasterFont" ou "DownloadAsNativeTrueTypeFont", o sinalizador DCTT_DOWNLOAD será definido no valor retornado.

Se o recurso der suporte a uma opção com a palavra-chave "RenderAsBitmap" Print Schema, o sinalizador DCTT_BITMAP será definido no valor retornado.

Se nenhum dos sinalizadores DCTT_Xxx estiver definido, DeviceCapabilities retornará 0.
DC_ORIENTATION (Somente PS) DeviceCapabilities retorna 90 ou 270 com base no valor *LandscapeOrientation do PPD e na configuração para a opção de orientação Paisagem Girada codificada na estrutura DEVMODE de entrada. (Somente PS) O valor retornado padrão é 0, o que significa que não há orientação paisagem.

Se o PPD der suporte a um recurso com a palavra-chave do Esquema de Impressão "PageOrientation", ocorrerá o seguinte:

Se o recurso der suporte a uma opção com a palavra-chave do Esquema de Impressão "Landscape", DeviceCapabilities retornará 90.

Se o recurso der suporte a uma opção com a palavra-chave do Esquema de Impressão "ReverseLandscape", DeviceCapabilities retornará 270.
DC_COLLATE Quando o EMF está habilitado, DeviceCapabilities é codificado para retornar 1 (o que significa que há suporte para agrupamento).

Quando o EMF está desabilitado, DeviceCapabilities retornará 1 se GPD ou PPD especificar Collate como um recurso com suporte e se o recurso Collate GPD ou PPD não for restrito por nenhum recurso de configuração do dispositivo. Caso contrário, DeviceCapabilities retornará 0.
O comportamento é o mesmo dos drivers não XPSDrv com EMF desabilitado.
DC_NUP DeviceCapabilities retorna um valor embutido em código para indicar suporte para 1, 2, 4, 6, 9 ou 16 ups. Se GPD ou PPD definir um recurso com a palavra-chave "DocumentNUp" Print Schema (o recurso "DocumentNUp" só será usado se não existir nenhum recurso "JobNUpAllDocumentsContiguously"), para todas as opções desse recurso que tenham a opção GPD/PPD nome da palavra-chave como um número numérico (ou seja, 1, 2, 6 e assim por diante), o número numérico será relatado como uma das páginas com suporte por valor de planilha.

Caso contrário, XPSDrv relata que não há suporte para NUp.
DC_PERSONALITY Unidrv retorna a cadeia de caracteres definida pela palavra-chave do GPD Personality ou rcPersonalityID.

PS sempre retorna "PostScript".
Mantenha o mesmo comportamento dos drivers não XPSDrv.
DC_MEDIAREADY Se a tabela de atribuição Form-Tray for criada, DeviceCapabilities retornará os nomes de formulário exclusivos listados na tabela que tem uma bandeja atribuída.

Se a tabela de atribuição da Bandeja de Formulários não for criada, DeviceCapabilities retornará "Letter" para a localidade padrão do sistema não métrico, "A4" para a localidade padrão do sistema métrico ou um tamanho de papel padrão definido por GPD ou PPD se a impressora não der suporte a "Letter" e "A4".
O comportamento é o mesmo que com não-XPSDrv sem nenhuma tabela de atribuição de bandeja de formulário criada.
DC_STAPLE (Somente PS) O PPD não possui um único recurso de "Grampeamento". Um driver PScript5 verifica se algum dos seguintes recursos PPD está definido no PPD e não restrito pelas configurações do dispositivo para determinar se o dispositivo pode dar suporte ao grampeamento.

"StapleLocation"
"StapleX", "StapleY"
"StapleWhen"
"StapleOrientation"
(Somente PS) Se o PPD der suporte a um recurso com a palavra-chave "JobStapleAllDocuments" ou "DocumentStaple" Print Schema, DeviceCapabilities retornará 1 para indicar o suporte ao grampeamento. Caso contrário, DeviceCapabilities retornará 0.