Usando EnumOptions
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.
Um chamador pode usar EnumOptions para recuperar uma lista de palavras-chave de opções para recursos de driver com suporte e quaisquer recursos PPD. Para recursos PPD, EnumOptions é sempre suportado e retorna as opções definidas pelo PPD.
Para recursos de driver, EnumOptions tem suporte apenas para recursos com suporte no momento e têm um conjunto fixo de opções. Por exemplo: %AddEuro tem duas opções: "True" e "False", e %PageOrder tem duas opções "FrontToBack" e "BackToFront". EnumOptions é suportado para %AddEuro (se o nível de idioma for 2 e superior), assim como %PageOrder (se o spooling EMF do spooler estiver habilitado). Mas recursos como %CustomPageSize, %PSMemory e outros têm um número ilimitado de opções possíveis, o que significa que EnumOptions não tem suporte para eles.
Para recursos de driver que não têm suporte no momento ou para recursos de driver com suporte que não são enumeráveis por meio de EnumOptions, EnumOptions retorna E_NOTIMPL.
Além disso, algumas opções de um recurso de driver podem não ter suporte em determinadas condições. Por exemplo, se o spooler EMF spooler estiver desabilitado no Windows 2000 e versões posteriores do sistema operacional, a opção "Livreto" não terá suporte para o recurso %PagePerSheet. Para outro exemplo, se a impressora não tiver um rasterizador Type42, a opção "NativeTrueType" não terá suporte para %TTDownloadFormat. Essas opções sem suporte não aparecerão na lista de palavras-chave de saída de EnumOptions.
Pscript lida com as seguintes palavras-chave de recurso de uma maneira especial:
A palavra-chave de recurso *CustomPageSize é convertida em uma opção da palavra-chave de recurso *PageSize, com "CustomPageSize" sendo a palavra-chave de opção. Chame GetOptionAttribute para obter seus parâmetros PPD.
A entrada *ManualFeed True é convertida em uma opção da palavra-chave do recurso *InputSlot, com "ManualFeed" sendo o nome da palavra-chave da opção.
Para a palavra-chave de recurso *InputSlot, Pscript sempre adiciona uma opção gerada pelo driver com o nome da palavra-chave de opção "*UseFormTrayTable" como a primeira opção (o prefixo "*" é usado no nome da palavra-chave de opção para evitar possíveis conflitos de nome com opções definidas por PPD), que é seguido por opções definidas no PPD. Se a opção "*UseFormTrayTable" for selecionada, o Pscript usará a tabela de atribuição de formulário para bandeja para selecionar automaticamente a bandeja de papel que suporta o tamanho de papel selecionado.