Compartilhar via


Manipular recursos e opções instaláveis

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.

Alguns dos recursos ou opções de uma impressora podem ser instaláveis. Por exemplo, uma impressora pode aceitar um alimentador de envelope opcional, que pode estar conectado no momento ou não. Esse alimentador de envelopes deve ser descrito em um arquivo GPD de duas formas:

  • Como uma opção para o recurso InputBin.

  • Como um "recurso" instalável (mesmo que seja realmente uma opção), que permite ao usuário indicar se está realmente instalado.

Primeiro, para especificar o alimentador de envelopes, juntamente com um alimentador automático, como opções para o recurso InputBin, as entradas GPD a seguir podem ser usadas.

*Feature: InputBin
{
    *Name: "Input Bin"
    *Option: AUTO
    {
        *Name: "Automatic Feeder"
        *Command: CmdSelect {Command Attributes}
    }
    *Option: ENVFEED
    {
        *Name: "Envelope Feeder"
        *Command: CmdSelect {Command Attributes}
    }
}

Para tornar o alimentador de envelopes instalável, são necessárias entradas GPD adicionais, conforme a seguir:

*InstalledOptionName: "Installed"
*NotInstalledOptionName: "Not installed"
*Feature: InputBin
{
    *Name: "Input Bin"
    *Option: AUTO
    {
        *Name: "Automatic Feeder"
        *Command: CmdSelect {Command Attributes}
    }
    *Option: ENVFEED
    {
        *Name: "Envelope Feeder"
        *Command: CmdSelect {Command Attributes}
        *Installable?: TRUE
        *InstallableFeatureName: "Optional Envelope Feeder"
    }
}

Na entrada *Option para o alimentador de envelopes, dois atributos foram adicionados:

  • O atributo *Installable? indica que a opção é instalável.

  • O atributo *InstallableFeatureName especifica uma cadeia de caracteres de texto que o Unidrv exibe para que o usuário possa indicar se a opção está realmente instalada.

Sempre que *Installable? for definido como TRUE para um recurso ou opção, o Unidrv criará um recurso adicional para a exibição da folha de propriedades. (Note que, mesmo que o item instalável seja uma opção, o Unidrv cria uma representação de recurso para ele na folha de propriedades.) Esse recurso sintetizado pelo Unidrv é identificado pela cadeia de caracteres fornecida com *InstallableFeatureName. O recurso oferece duas opções, "Instalado" e "Não instalado", além de permitir que o usuário selecione uma dessas opções. As cadeias de caracteres "Instalado" e "Não instalado" são especificadas com os atributos *InstalledOptionName e *NotInstalledOptionName para que você possa modificá-las se outro texto for mais apropriado.

Portanto, para nosso exemplo, a folha de propriedades incluiria um recurso InputBin, rotulado Input Bin, que inclui duas opções, rotuladas como Alimentador automático e Alimentador de envelopes. A folha de propriedades também incluiria um recurso adicional, rotulado como Alimentador de envelopes opcional, com duas opções, rotuladas como Instalado e Não instalado. O usuário somente pode selecionar Alimentador de envelopes em Bandeja de entrada se selecionar primeiro Instalado em Alimentador de envelopes opcional.

Às vezes, é necessário indicar que determinadas opções instaláveis não podem ser instaladas de forma simultânea ou que certa opção não instalável não pode ser selecionada se alguma outra opção instalável estiver instalada. Para lidar com essas situações, use entradas GPD que especifiquem restrições de opção.

Não é possível usar o atributo *Installable? com recursos opcionais que requerem uma entrada *DisabledFeatures. Para esses recursos, é necessário especificar de forma explícita o recurso opcional com as opções "Instalado" e "Não instalado". Por exemplo, suponha que uma impressora tenha uma unidade de duplexação opcional. É necessário que o recurso Duplex (consulte Recursos padrão) seja desativado se a unidade duplex não estiver instalada. É preciso definir um recurso "Unidade de duplexação opcional", com as opções "Instalado" e "Não Instalado". Na entrada *Option "Não instalado", inclua uma entrada *DisabledFeatures para o recurso Duplex. As seguintes entradas GPD podem ser usadas:

*Feature: DuplexUnit
{
    *ConflictPriority: 3   *% Make priority higher than Duplex feature
    *Name: "Optional Duplexing Unit"
    *Option: Installed
    {
        *Name: "Installed"
    }
    *Option: NotInstalled
    {
        *Name: "Not Installed"
        *DisabledFeatures: LIST(Duplex)
        *Constraints: LIST (Duplex.LongEdge, Duplex.ShortEdge)
    }
}

Certifique-se também de especificar quaisquer restrições de opção relevantes, como ilustrado.