Restrições de seleção
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.
Muitas vezes, certas opções para vários recursos da impressora não podem ser selecionadas simultaneamente. Por exemplo, se o alimentador de envelope estiver selecionado, os tamanhos de papel que não sejam de envelope, como papel de tamanho carta ou A4, não poderão ser selecionados.
Para especificar combinações de opções de impressora que não podem ser selecionadas simultaneamente, use as entradas *InvalidCombination ou *Constraints. Se um usuário tentar selecionar uma combinação de opções que você especificou como inválida, o Unidrv rejeitará a seleção.
A entrada *InvalidCombination tem o seguinte formato:
*InvalidCombination : LIST ( FeatureName . OptionName , FeatureName . OptionName , ...)
onde FeatureName é o nome de um recurso e OptionName é o nome de uma opção associada ao recurso.
As opções listadas em uma única entrada *InvalidCombination indicam um conjunto de opções que não podem ser usadas em combinação. Por exemplo, a entrada a seguir especifica que o modo de cor CMYK não pode ser usado com papel comum e 720 DPI.
*InvalidCombination: LIST(Resolution.720dpi, MediaType.Plain, ColorMode.CMYK)
Todas as entradas *InvalidCombination devem estar localizadas no nível raiz do arquivo GPD (ou seja, não entre chaves). O número de opções incluídos em uma entrada não é limitado.
Se você só precisar indicar uma relação de combinação inválida entre duas opções, poderá usar uma entrada *Constraints. O formato é:
*Constraints : FeatureName . OptionName
onde FeatureName é o nome de um recurso e OptionName é o nome de uma opção associada ao recurso. Uma entrada *Constraints deve ser colocada dentro de uma entrada *Option. Por exemplo, para indicar que papel de tamanho carta e A4 não pode ser usado com o alimentador de envelopes, você pode usar as seguintes entradas:
*Feature: InputBin
{
*Option: ENVFEED
{
*Constraints: PaperSize.Letter
*Constraints: PaperSize.A4
}
}
ou de modo equivalente:
*Feature: InputBin
{
*Option: ENVFEED
{
*Constraints: LIST(PaperSize.Letter, PaperSize.A4)
}
}
Esses exemplos especificam que, se um usuário tentar selecionar o alimentador de envelope e o papel de tamanho carta, ou o alimentador de envelope e o papel de tamanho A4, o Unidrv rejeitará a seleção.