Compartilhar via


Recursos do driver

Importante

A plataforma de impressão moderna é o meio preferencial 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.

Os recursos de driver são recursos não PPD sintetizados pelo driver (por exemplo, o recurso %OutputFormat). Para evitar conflitos de nomes com palavras-chave de recursos de PPD, todos os nomes de palavras-chave de recursos de driver são precedidos por um caractere "%". Palavras-chave de recurso/opção de driver também fazem diferenciação entre maiúsculas e minúsculas.

Para obter uma lista de todas as palavras-chave de recursos de driver compatíveis com o driver, um plug-in pode chamar EnumFeatures, que retornará a lista de palavras-chave de recursos contendo tanto os recursos do driver quanto os recursos de PPD. O plug-in pode procurar por nomes de palavras-chave de recurso que comecem com o prefixo "%" para obter a lista de recursos do driver.

A tabela a seguir lista os recursos de driver compatíveis no momento. Cada linha da tabela lista uma palavra-chave de recurso de driver, mostra as opções compatíveis, indica se as opções do recurso podem ser enumeradas em uma chamada para EnumOptions e fornece uma breve descrição.

Recurso do driver Opções com suporte Opções de enumeração Descrição e comentários
%AddEuro "True"

"False"
Sim Adicione o símbolo do Euro às fontes do dispositivo.

Esse recurso é compatível apenas com impressoras Nível 2+. Para impressoras Nível 1, SetOptions ignora esse recurso e GetOptions sempre retorna "False".
%CtrlDAfter "True"

"False"
Sim Envie Ctrl-D após cada trabalho.

Persistente na impressora
%CtrlDBefore "True"

"False"
Sim Envie Ctrl-D antes de cada trabalho.

Persistente na impressora
%CustomPageSize Confira a Observação 1 abaixo para mais informações. Não Especifique parâmetros de tamanho de página personalizados em PostScript.

Persistente no documento
%GraphicsTrueGray "True"

"False"
Sim Converta gráficos em tons de cinza para o padrão de cinza PostScript.

Persistente na impressora
%JobTimeout Uma cadeia de caracteres ANSI terminada em NULL que contém caracteres de dígitos decimais que representa o número inteiro sem sinal de segundos para o tempo limite, no intervalo de 0 a 2.147.483.647.

Em SetOptions, tabulações ou caracteres de espaço adicionais antes ou depois dos dígitos decimais são permitidos, mas não é permitido o uso de símbolo de sinal.
Não Especifique o valor de tempo limite do trabalho.

Persistente na impressora
%MaxFontSizeAsBitmap Uma cadeia de caracteres ANSI terminada em NULL que contém caracteres de dígitos decimais que representa o número inteiro sem sinal de pixels, no intervalo de 0 a 32.767.

Em SetOptions, tabulações ou caracteres de espaço adicionais antes ou depois dos dígitos decimais são permitidos, mas não é permitido o uso de símbolo de sinal.
Não Especifique o tamanho máximo da fonte a ser baixado como um bitmap.

Persistente na impressora
%MetafileSpooling "True"

"False"
Sim Habilite/desabilite recursos avançados de impressão.

Persistente no documento

Confira a Observação 2 abaixo para mais informações.
%MinFontSizeAsOutline Uma cadeia de caracteres ANSI terminada em NULL que contém caracteres de dígitos decimais que representa o número inteiro sem sinal de pixels, no intervalo de 0 a 32.767.

Em SetOptions, tabulações ou caracteres de espaço adicionais antes ou depois dos dígitos decimais são permitidos, mas não é permitido o uso de símbolo de sinal.
Não Especifique o tamanho mínimo da fonte a ser baixado como estrutura de tópicos.

Persistente na impressora
%Mirroring "True"

"False"
Sim Inverta a saída revertendo as coordenadas horizontais.

Persistente no documento
%Negative "True"

"False"
Sim Produza uma saída negativa revertendo os valores para preto e branco. Esse recurso é compatível apenas com impressoras em preto e branco. Para impressoras coloridas, SetOptions ignora esse recurso e GetOptions sempre retorna "False".

Persistente no documento
%Orientation "Portrait", "Landscape", "RotatedLandscape" Sim Especifique a orientação de saída.

Persistente no documento
%OutputFormat "Speed", "Portability", "EPS", "Archive" Sim Especifique o formato de saída PostScript.

Persistente no documento

Confira a Observação 5 abaixo para mais informações.
%OutputProtocol "ASCII", "BCP", "TBCP", "Binary" Sim Especifique o protocolo que a impressora usará para trabalhos de impressão. Presume-se que as impressoras PostScript ofereçam suporte a "ASCII" e "Binary", portanto, essas opções estão sempre disponíveis. As opções "BCP" e "TBCP" estarão disponíveis somente se forem compatíveis. Para determinar isso, verifique o atributo global "Protocols".

Persistente na impressora
%OutputPSLevel "1", "2", "3" Não Especifique qual nível de linguagem PostScript usar para o trabalho de impressão. A configuração nunca será maior que o valor especificado no atributo global "LanguageLevel".

Persistente no documento
%PageOrder "FrontToBack"

"BackToFront"
Sim Especifique a ordem em que as páginas serão impressas.

Persistente no documento

Confira a Observação 3 abaixo para mais informações.
%PagePerSheet "1", "2", "4", "6",

"9", "16", "Booklet"
Sim Especifique o número de páginas lógicas por folha física. Esse recurso também é conhecido como impressão "N-up".

Persistente no documento

Confira a Observação 4 abaixo para mais informações.
%PSErrorHandler "True"

"False"
Sim Envie o manipulador de erros PostScript.

Persistente no documento
%PSMemory Uma cadeia de caracteres ANSI terminada em NULL que contém caracteres de dígitos decimais que representa o número inteiro sem sinal de kilobytes de memória PostScript, no intervalo de 0 a 2.147.483.647.

Em SetOptions, tabulações ou caracteres de espaço adicionais antes ou depois dos dígitos decimais são permitidos, mas não é permitido o uso de símbolo de sinal.
Não Especifique a quantidade de memória virtual PostScript disponível.

O driver principal requer uma determinada quantidade de memória virtual PostScript disponível para seu processamento. Se %PSMemory estiver configurado abaixo desse mínimo, o valor mínimo será usado como o novo valor. No momento, o valor mínimo é de 172 KB para impressoras Nível 1 e 249 KB para impressoras Nível 2+.

Persistente na impressora
%TextTrueGray "True"

"False"
Sim Converta textos em tons de cinza para o padrão de cinza PostScript.

Persistente na impressora
%TTDownloadFormat "Automatic", "Outline", "Bitmap", "NativeTrueType" Sim Especifique o formato de download da fonte TrueType. "NativeTrueType" é compatível somente quando o atributo global "TTRasterizer" indica suporte para "Type42".

Persistente no documento
%WaitTimeout Uma cadeia de caracteres ANSI terminada em NULL que contém caracteres de dígitos decimais que representa o número inteiro sem sinal de segundos para o tempo limite, no intervalo de 0 a 2.147.483.647.

Em SetOptions, tabulações ou caracteres de espaço adicionais antes ou depois dos dígitos decimais são permitidos, mas não é permitido o uso de símbolo de sinal.
Não Especifique o valor de tempo limite de espera.

Persistente na impressora

Notas sobre palavras-chave de recursos do driver

  1. O recurso do driver %CustomPageSize tem cinco valores de opção: x, y, WidthOffset, HeightOffset e FeedDirection. Consulte a seção 5.16 da Especificação de formato de arquivo de descrição da impressora PostScript, versão 4.3, para obter uma explicação detalhada desses parâmetros.

    Uma entrada %CustomPageSize contém a palavra-chave %CustomPageSize, juntamente com valores para as opções x, y, WidthOffset, HeightOffset e FeedDirection. O primeiro item é a palavra-chave %CustomPageSize, seguida por um caractere NULL. Os valores de x, y, WidthOffset e HeightOffset seguem esta palavra-chave e aparecem como subcadeias de caracteres de dígitos decimais sem sinal, cada um representando o número de pontos PostScript para o valor correspondente da opção. Cada um desses valores numéricos é seguido por um ou mais caracteres de espaço ou tabulação. O item final na cadeia de caracteres é o valor de FeedDirection, que é encerrado por um caractere NULL. As opções para FeedDirection são "LongEdge", "ShortEdge" (correspondentes às orientações 0 e 1) e "LongEdgeFlip", "ShortEdgeFlip" (correspondentes às orientações 2 e 3). Verifique a palavra-chave de recurso de PPD *LeadingEdge para direções de alimentação compatíveis.

    Em GetOptions, o buffer de saída apontado por pmszFeatureOptionBuf é conforme descrito no parágrafo anterior. No exemplo a seguir, o valor para x é 612, o valor para y é 792, os valores para WidthOffset e HeightOffset são ambos 0, e o valor para FeedDirection é "ShortEdge".

    "%CustomPageSize\0612 792 0 0 ShortEdge\0"
    

    Em SetOptions, tabulações ou caracteres de espaço adicionais antes ou depois dos dígitos decimais são permitidos, mas não é permitido o uso de símbolo de sinal. Caso contrário, o buffer de entrada apontado por pmszFeatureOptionBuf deve ser construído conforme descrito acima.

  2. O recurso do driver %CustomPageSize é compatível somente se todas as três condições a seguir forem atendidas:

    1. O arquivo PPD contém o recurso *CustomPageSize.

    2. A palavra-chave *PPD-Adobe tem um valor maior ou igual a 4.3 ou *UseHWMargin: False é especificado para indicar um dispositivo alimentado por rolo.

    3. A opção atualmente selecionada do recurso PPD *PageSize é CustomPageSize.

  3. Esse recurso é compatível somente quando a impressão em spooler EMF está habilitada.

    Quando houver suporte, definir a opção deste recurso como "False" causa alterações nos seguintes recursos relacionados ao EMF:

    1. Se %PagePerSheet for "Booklet", será alterado para "1".

    2. Se a opção Collate estiver definida como "True" (que pode ser configurada diretamente na parte pública da estrutura DEVMODEW ou chamando SetOptions no recurso de PPD *Collate), mas o recurso Collate não estiver disponível no momento, Collate será definido como "False".

    3. Se %PageOrder for o oposto da configuração atual da ordem de saída da impressora, %PageOrder será revertido para o valor da impressora.

  4. Esse recurso é compatível somente quando a impressão em spooler EMF está habilitada.

    Quando há suporte, definir este recurso pode causar o seguinte:

    1. Se o arquivo PPD da impressora incluir a palavra-chave de recurso *OutputOrder, sua seleção de opção será alterada para corresponder à nova configuração da opção de saída do recurso %PageOrder. Isso é feito para evitar que o spooler realize uma simulação desnecessária da ordem das páginas.

    2. Se o arquivo PPD da impressora não incluir o recurso *OutputOrder, e a nova configuração para o recurso do driver %PageOrder for o oposto da configuração atual da ordem de saída da impressora, e o recurso do driver %MetafileSpooling for "False", então %MetafileSpooling será redefinido como "True".

  5. A opção "Booklet" é compatível somente quando a impressão em spooler EMF está habilitada e o recurso Duplex está disponível.

    Quando a opção "Booklet" é compatível, definir o recurso do driver %PagePerSheet como "Booklet" pode causar as seguintes mudanças:

    1. Se o recurso do driver %MetafileSpooling for "False", será redefinido como "True".

    2. Se o recurso de PPD *Duplex estiver definido como Nenhum, o recurso *Duplex será redefinido para a primeira opção não Simplex definida no arquivo PPD.

  6. Exceto para "EPS" (PostScript encapsulado), os formatos especificados no recurso do driver %OutputFormat são categorizados de acordo com as seguintes duas características:

    1. O código PostScript de saída é independente da ordem das páginas?

    2. O código PostScript de saída contém comandos de controle do dispositivo (que geralmente usam o operador setpagedevice)?

      Categoria Independente da ordem das páginas setpagedevice
      Arquivamento Sim No
      Portabilidade Sim Sim
      Velocidade Não Sim

Quando GetOptions é chamado em palavras-chave de recursos do driver, se uma palavra-chave de recurso solicitada não for reconhecida ou se a palavra-chave de recurso for reconhecida, mas não for compatível no modo atual Fixo no documento ou Fixo na impressora (consulte Substituir páginas da folha de propriedades fornecidas pelo driver), o recurso será simplesmente ignorado e o buffer de saída não conterá seu par de palavras-chave de recurso/opção.

Por exemplo, suponha que o método GetOptions seja chamado e o buffer de entrada pmszFeaturesRequested contenha a seguinte cadeia de caracteres (no formato MULTI_SZ):

"Resolution\0%CustomPageSize\0Unknown_Name\0%Orientation\0\0"

Após GetOption retornar, o buffer de saída pmszFeatureOptionBuf poderá conter esta cadeia de caracteres (também no formato MULTI_SZ):

"Resolution\0300dpi\0%CustomPageSize\0612 792 0 0 ShortEdge\0%Orientation\0RotatedLandscape\0\0"

Observe que o recurso Unknown_Name (que não existe) listado na primeira cadeia de caracteres não aparece na segunda cadeia de caracteres, pois não foi reconhecido pelo driver Pscript. Os outros recursos, Resolution, %CustomPageSize e %Orientation, aparecem na cadeia de caracteres de saída, juntamente com suas opções atuais, que são "300dpi", "612 792 0 0 ShortEdge" e "RotatedLandscape", respectivamente. Consulte Recursos do driver para obter uma explicação das opções %CustomPageSize.

Quando SetOptions é chamado em palavras-chave de recursos do driver, se uma palavra-chave de recurso solicitada ou sua palavra-chave de opção no buffer de entrada apontado por pmszFeatureOptionBuf não for reconhecida ou o recurso for reconhecido, mas não for compatível no modo atual de fixo no documento ou fixo na impressora (consulte Substituir páginas da folha de propriedades fornecidas pelo driver), ou se tanto a palavra-chave de recurso quanto a palavra-chave de opção forem reconhecidas, mas a palavra-chave de opção for inválida para esse recurso (por exemplo, tentar definir %TTDownloadFormat como "NativeTrueType" em uma impressora que não é compatível com Type42 TTRasterizer), esse par de recurso/opção será ignorado e a opção atual para esse recurso continuará vigente.

A ordem dos pares de palavras-chave de recurso/opção no buffer apontado por pmszFeatureOptionBuf pode afetar o resultado da chamada SetOptions. Por exemplo, as duas ordens diferentes a seguir têm resultados diferentes.

pmszFeatureOptionBuf %PagePerSheet %MetafileSpooling
"%MetafileSpooling\0False\0%PagePerSheet\0Booklet\0\0" "Booklet" "True"
"%PagePerSheet\0Booklet\0%MetafileSpooling\0False\0\0" "1" "False"

Para uma explicação de por que esses resultados ocorrem, consulte a Observação 3 sobre %MetafileSpooling acima.