Compartilhar via


Comandos de impressora gerados dinamicamente

Importante

Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft, juntamente com o PSA (Aplicativos de Suporte para Impressão), para personalizar a experiência de impressão em 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 para impressão.

Sempre que você especificar um comando de impressora em um arquivo GPD para um minidriver Unidrv, poderá usar um dos dois métodos a seguir:

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

    Quando você coloca a cadeia de caracteres de comando em um arquivo GPD, 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, Unidrv chamará a função quando for a hora 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, em seguida, a envia para a impressora.

Para colocar uma cadeia de caracteres de comando em um arquivo GPD, você precisa incluir um atributo *Cmd dentro da entrada *Command do comando.

Para fornecer código que gera dinamicamente uma cadeia de caracteres de comando, você deve fazer o seguinte:

  • Forneça um plug-in de renderização que implementa 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 minidriver para determinar se o comando foi especificado com um atributo *Cmd ou com um atributo *CallbackID. No caso anterior, Unidrv envia a cadeia de caracteres de comando para o spooler de impressão. No último caso, Unidrv chama o método IPrintOemUni::CommandCallback , passando os valores *CallbackID e *Params como argumentos de entrada.