Partilhar via


Comandos de impressora gerados dinamicamente

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.

Cada vez que especifica um comando de impressora em um arquivo de GPD para um minidriver Unidrv, pode 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, 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 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, envia-o para a impressora.

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

Para fornecer código que gera dinamicamente uma cadeia de comando, você deve 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 de 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. Neste último caso, Unidrv chama o IPrintOemUni::CommandCallback método, passando os valores *CallbackID e *Params como argumentos de entrada.