Partilhar via


Características do driver

Importante

A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), 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 Guia de design do aplicativo de suporte de impressão v1 e v2.

Recursos de driver são recursos não-PPD que são sintetizados pelo driver (por exemplo, o recurso %OutputFormat ). Para evitar conflitos de nomes com palavras-chave de funcionalidades PPD, todos os nomes das palavras-chave de funcionalidades dos drivers são precedidos por um caractere "%". As palavras-chave de recurso/opção do driver também diferenciam maiúsculas de minúsculas.

Para obter uma lista de todas as palavras-chave de funcionalidades suportadas pelo driver, um plug-in pode chamar o EnumFeatures, que retornará a lista de palavras-chave de funcionalidades contendo tanto recursos do driver quanto recursos do PPD. O plug-in pode então procurar nomes de palavras-chave de recursos que começam com o prefixo "%" para obter a lista de recursos do driver.

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

Característica do driver Opções suportadas Opções de Enum Descrição e comentários
%AddEuro "Verdade"

"Falso"
Yes Adicione o símbolo Euro às fontes do dispositivo.

Esta funcionalidade é suportada apenas para impressoras de Nível 2+. Para impressoras de nível 1, SetOptions ignora esse recurso e GetOptions sempre retorna "False".
%CtrlDAfter "Verdade"

"Falso"
Yes Envie Ctrl-D após cada trabalho.

Impressora autoadesiva
%CtrlDBefore "Verdade"

"Falso"
Yes Envie Ctrl-D antes de cada trabalho.

Impressora autoadesiva
%CustomPageSize Consulte a Nota 1 abaixo para obter mais informações. Não Especifique os parâmetros de tamanho de página personalizados PostScript.

Documento autocolante
%GraphicsTrueGray "Verdade"

"Falso"
Yes Converta gráficos cinza em cinza PostScript.

Impressora autoadesiva
%JobTimeout Uma cadeia de caracteres ANSI terminada por NULL contendo caracteres de dígitos decimais que representa o número inteiro não assinado de segundos para o tempo limite, no intervalo de 0 a 2.147.483.647.

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

Impressora autoadesiva
%MaxFontSizeAsBitmap Uma cadeia de caracteres ANSI terminada por NULL contendo caracteres de dígitos decimais que representa o número inteiro não assinado de pixels, no intervalo de 0 a 32.767.

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

Impressora autoadesiva
%MetafileSpooling "Verdade"

"Falso"
Yes Ativar/desativar funcionalidades de impressão avançadas.

Documento autocolante

Consulte a Nota 2 abaixo para obter mais informações.
%MinFontSizeAsOutline Uma cadeia de caracteres ANSI terminada por NULL contendo caracteres de dígitos decimais que representa o número inteiro não assinado de pixels, no intervalo de 0 a 32.767.

Para SetOptions, caracteres de tabulação ou espaço extras antes ou depois dos dígitos decimais são permitidos, mas um símbolo de sinal não é permitido.
Não Especifique o tamanho mínimo da fonte a ser baixada como contorno.

Impressora autoadesiva
%Mirroring "Verdade"

"Falso"
Yes Espelhe a saída invertendo as coordenadas horizontais.

Documento autocolante
%Negative "Verdade"

"Falso"
Yes Produza resultados negativos invertendo os valores para preto e branco. Esta funcionalidade é suportada apenas para impressoras a preto e branco. Para impressoras coloridas, SetOptions ignora esse recurso e GetOptions sempre retorna "False".

Documento autocolante
%Orientation "Retrato", "Paisagem", "Paisagem Rotativa" Yes Especifique a orientação de saída.

Documento autocolante
%OutputFormat "Velocidade", "Portabilidade", "EPS", "Arquivo" Yes Especifique o formato de saída PostScript.

Documento autocolante

Consulte a Nota 5 abaixo para obter mais informações.
%OutputProtocol "ASCII", "BCP", "TBCP", "Binário" Yes Especifique o protocolo que a impressora usará para trabalhos de impressão. Assume-se que as impressoras PostScript suportam "ASCII" e "Binary", pelo que estas opções estão sempre disponíveis. As opções "BCP" e "TBCP" só estão disponíveis se forem suportadas. Para determinar isso, verifique o atributo global "Protocolos".

Impressora autoadesiva
%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 do que o valor especificado no atributo global "LanguageLevel".

Documento autocolante
%PageOrder "FrontToBack"

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

Documento autocolante

Consulte a Nota 3 abaixo para obter mais informações.
%PagePerSheet "1", "2", "4", "6",

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

Documento autocolante

Consulte a Nota 4 abaixo para obter mais informações.
%PSErrorHandler "Verdade"

"Falso"
Yes Enviar manipulador de erro PostScript.

Documento autocolante
%PSMemory Uma cadeia de caracteres ANSI terminada por NULL contendo caracteres de dígitos decimais que representa o número inteiro não assinado de kilobytes de memória PostScript, no intervalo de 0 a 2.147.483.647.

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

O driver principal requer uma certa quantidade de memória virtual PostScript disponível para seu processamento. Se %PSMemory for definido abaixo desse mínimo, o valor mínimo será usado como o novo valor. Atualmente, o valor mínimo é de 172 KB para impressoras de nível 1 e 249 KB para impressoras de nível 2+.

Impressora autoadesiva
%TextTrueGray "Verdade"

"Falso"
Yes Converta texto cinza em cinza PostScript.

Impressora autoadesiva
%TTDownloadFormat "Automático", "Contorno", "Bitmap", "NativeTrueType" Yes Especifique o formato de download da fonte TrueType. "NativeTrueType" é suportado somente quando o atributo global "TTRasterizer" indica suporte para "Type42".

Documento autocolante
%WaitTimeout Uma cadeia de caracteres ANSI terminada por NULL contendo caracteres de dígitos decimais que representa o número inteiro não assinado de segundos para o tempo limite, no intervalo de 0 a 2.147.483.647.

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

Impressora autoadesiva

Notas sobre palavras-chave de funcionalidades de driver

  1. O recurso %CustomPageSize do driver tem cinco valores de opção: x, y, WidthOffset, HeightOffset e FeedDirection. Consulte a seção 5.16 da PostScript Printer Description File Format Specification, 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 essa palavra-chave e aparecem como substrings de dígitos decimais não assinados, cada um representando o número de pontos PostScript para o valor da opção correspondente. 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" (correspondente às orientações 0 e 1), e "LongEdgeFlip", "ShortEdgeFlip" (correspondente às orientações 2 e 3). Verifique a palavra-chave do recurso PPD *LeadingEdge para direções de alimentação suportadas.

    Para 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 0 e o valor para FeedDirection é "ShortEdge".

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

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

  2. A funcionalidade do driver %CustomPageSize é suportada apenas se todas as três condições seguintes forem atendidas:

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

    2. A palavra-chave *PPD-Adobe tem um valor igual ou superior a 4.3, ou *UseHWMargin: False está definido para indicar um dispositivo com alimentação por rolo.

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

  3. Este recurso é suportado somente quando o spooler EMF spooling está habilitado.

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

    1. Se %PagePerSheet é "Brochura", é alterado para "1".

    2. Se Collate estiver definido como "True" (que pode ser definido diretamente na parte pública da estrutura DEVMODEW ou chamando SetOptions no recurso *Collate PPD), 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 de ordem de saída atual da impressora, %PageOrder será revertida para o valor da impressora.

  4. Este recurso é suportado somente quando o spooler EMF spooling está habilitado.

    Quando há suporte, a configuração desse recurso pode fazer com que ocorra o seguinte:

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

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

  5. A opção "Booklet" é suportada apenas quando o spooler EMF spooling está ativado e o recurso Duplex está disponível.

    Quando a opção "Booklet" é suportada, definir o recurso driver%PagePerSheet como "Booklet" pode causar as seguintes alterações:

    1. Se a funcionalidade do driver %MetafileSpooling for "False", ela será redefinida para "True".

    2. Se o recurso *Duplex PPD 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" (Encapsulated PostScript), os formatos especificados no recurso de 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 de dispositivo (que geralmente usam o operador setpagedevice )?

      Categoria Ordem de página independente SetPageDevice
      Arquivo Yes Não
      Portabilidade Yes Yes
      Velocidade Não Yes

Quando GetOptions é chamado em palavras-chave de funcionalidade do driver, se uma palavra-chave de funcionalidade solicitada não for reconhecida, ou se a palavra-chave de funcionalidade for reconhecida, mas não suportada no modo atual associado ao documento ou à impressora (consulte a seção sobre a substituição de páginas da folha de propriedades Driver-Supplied), a funcionalidade será simplesmente ignorada e o buffer de saída não conterá o seu par palavra-chave de funcionalidade/opção.

Por exemplo, suponha que o método GetOptions é chamado e o buffer de entrada pmszFeaturesRequested contém 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, Resolução, %CustomPageSizee %Orientation, aparecem na cadeia de saída, juntamente com suas opções atuais, que são "300dpi", "612 792 0 0 ShortEdge" e "RotatedLandscape", respectivamente. Consulte Funcionalidades do Driver para obter uma explicação das opções de%CustomPageSize.

Quando SetOptions é chamado em keywords de funcionalidades do controlador, se uma palavra-chave de funcionalidades solicitada ou sua palavra-chave da opção no buffer de entrada apontado por pmszFeatureOptionBuf não for reconhecida, ou se a funcionalidade for reconhecida, mas não for suportada no modo persistente de documento ou impressora atual (consulte Substituindo páginas de folhas de propriedades de Driver-Supplied), ou se a palavra-chave das funcionalidades e sua palavra-chave da opção forem reconhecidas, mas a palavra-chave da opção for inválida para essa funcionalidade (por exemplo, tentando definir %TTDownloadFormat como "NativeTrueType" em uma impressora que não suporta Type42 TTRasterizer), então esse par de funcionalidades/opção será ignorado e a opção atual para essa funcionalidade permanecerá ativa.

A ordem dos pares de palavras-chave de funcionalidades/opções 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" "Brochura" "Verdade"
"%PagePerSheet\0Booklet\0%MetafileSpooling\0False\0\0" "1" "Falso"

Para uma explicação das razões por que estes resultados ocorrem, ver a Nota 3 sobre %MetafileSpooling, acima.