Manipulando recursos e opções instaláveis
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 o guia de design do aplicativo de suporte Print.
Alguns dos recursos ou opções de uma impressora podem ser instaláveis. Por exemplo, uma impressora pode aceitar um alimentador de envelopes opcional, que pode ou não estar conectado no momento. Este alimentador de envelopes deve ser descrito dentro de um arquivo GPD de duas maneiras:
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 ele está realmente instalado.
Primeiro, para especificar o alimentador de envelopes, juntamente com um alimentador automático, como opções para a função InputBin, podem ser usadas as seguintes entradas GPD.
*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, da seguinte forma:
*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"
}
}
Dentro da entrada *Option para o alimentador de envelopes, dois atributos foram adicionados:
O *Instalável? 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 *Instalável? estiver definido como TRUE para um recurso ou opção, o Unidrv criará um recurso adicional para a exibição da folha de propriedades. (Observe 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.) Este recurso sintetizado em Unidrv é identificado pela string fornecida com *InstallableFeatureName. O recurso fornece duas opções, "Instalado" e "Não instalado", e permite que o usuário selecione uma dessas opções. As cadeias de caracteres "Installed" e "Not installed" são especificadas com os atributos *InstalledOptionName e *NotInstalledOptionName para que você possa modificá-las se outro texto for mais apropriado.
Assim, para o nosso exemplo, a folha de propriedades incluiria um recurso InputBin, rotulado Input Bin, que inclui duas opções, rotuladas Automatic Feeder e Envelope Feeder. A folha de propriedades também incluiria um recurso adicional, rotulado Alimentador de envelope opcional, com duas opções, rotuladas Instalado e Não instalado. O utilizador só pode selecionar Alimentador de Envelopes na Bandeja de Entrada se primeiro selecionar Instalado em Alimentador de Envelopes Opcional.
Às vezes, é necessário indicar que certas opções instaláveis não podem ser instaladas simultaneamente, ou que uma determinada 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 especificam restrições de opção .
Você não pode usar o atributo *Instalável? com funcionalidades opcionais que exigem uma entrada do tipo *DisabledFeatures. Para esses recursos, você deve especificar explicitamente o recurso opcional com as opções "Instalado" e "Não instalado". Por exemplo, suponha que uma impressora tenha uma unidade duplex opcional. A funcionalidade Duplex deve ser desativada (consulte Recursos padrão) se a unidade duplex não estiver instalada. Você deve definir a função "Unidade Duplex Opcional", com as opções "Instalado" e "Não Instalado". Na entrada *Option "Não instalado", incluiria 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 relevantes da opção , tal como ilustrado.