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
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.
O recurso do driver %CustomPageSize é compatível somente se todas as três condições a seguir forem atendidas:
O arquivo PPD contém o recurso *CustomPageSize.
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.
A opção atualmente selecionada do recurso PPD *PageSize é CustomPageSize.
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:
Se %PagePerSheet for "Booklet", será alterado para "1".
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".
Se %PageOrder for o oposto da configuração atual da ordem de saída da impressora, %PageOrder será revertido para o valor da impressora.
Esse recurso é compatível somente quando a impressão em spooler EMF está habilitada.
Quando há suporte, definir este recurso pode causar o seguinte:
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.
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".
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:
Se o recurso do driver %MetafileSpooling for "False", será redefinido como "True".
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.
Exceto para "EPS" (PostScript encapsulado), os formatos especificados no recurso do driver %OutputFormat são categorizados de acordo com as seguintes duas características:
O código PostScript de saída é independente da ordem das páginas?
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.