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 Guia de design do aplicativo de suporte de impressão v1 e v2.

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.