Partilhar via


Comandos de impressora gerados dinamicamente

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.

Cada vez que você especifica um comando de impressora em um arquivo GPD para um minidriver Unidrv, é possível usar um dos dois métodos a seguir:

  • Coloque a cadeia de caracteres de comando no arquivo GPD.

    Ao colocar a cadeia de caracteres de comando em um arquivo GPD, o Unidrv envia o comando para o spooler de impressão no momento apropriado. Essas cadeias de caracteres de comando podem incluir variáveis padrão, que o Unidrv avalia antes de enviar o comando.

  • Forneça uma função de retorno de chamada.

    Se você fornecer uma função de retorno de chamada, o Unidrv chamará a função quando for o momento de enviar o comando e a função será responsável por enviar o comando para o spooler de impressão. Isso permite que você inclua o código que gera dinamicamente uma cadeia de caracteres de comando e a envia para a impressora.

Para colocar uma cadeia de caracteres de comando em um arquivo GPD, é necessário incluir um atributo *Cmd na entrada *Command do comando.

Para fornecer código que gere dinamicamente uma cadeia de caracteres de comando, é preciso fazer o seguinte:

  • Forneça um plug-in de renderização que implemente o método IPrintOemUni::CommandCallback.

  • Inclua um atributo de comando *CallbackID e, opcionalmente, um atributo *Params, dentro da entrada *Command do comando no arquivo GPD.

Quando o Unidrv está pronto para emitir um comando de impressora, ele verifica o banco de dados do minidriver para determinar se o comando foi especificado com um atributo *Cmd ou com um atributo *CallbackID. No primeiro caso, o Unidrv envia a cadeia de caracteres de comando para o spooler de impressão. No último caso, o Unidrv chama o método IPrintOemUni::CommandCallback, transmitindo os valores *CallbackID e *Params como argumentos de entrada.