Comandi stampanti generati dinamicamente

Importante

È consigliabile usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi stampanti.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto stampa.

Ogni volta che si specifica un comando stampante in un file GPD per un minidriver Unidrv, è possibile usare uno dei due metodi seguenti:

  • Inserire la stringa di comando nel file GPD.

    Quando si inserisce la stringa di comando in un file GPD, Unidrv invia il comando al spooler di stampa al momento appropriato. Queste stringhe di comando possono includere variabili standard, che Unidrv valuta prima di inviare il comando.

  • Specificare una funzione di callback.

    Se si fornisce una funzione di callback, Unidrv chiama la funzione quando è il momento di inviare il comando e la funzione è responsabile dell'invio del comando al spooler di stampa. Ciò consente di includere il codice che genera dinamicamente una stringa di comando e quindi la invia alla stampante.

Per inserire una stringa di comando in un file GPD, è necessario includere un attributo *Cmd all'interno della voce *Comando del comando.

Per specificare il codice che genera dinamicamente una stringa di comando, è necessario eseguire le operazioni seguenti:

  • Fornire un plug-in di rendering che implementa il metodo IPrintOemUni::CommandCallback .

  • Includere un attributo di comando *CallbackID e, facoltativamente, un attributo *Params, all'interno della voce *Command del comando nel file GPD.

Quando Unidrv è pronto per eseguire un comando stampante, controlla il database del minidriver per determinare se il comando è stato specificato con un attributo *Cmd o con un attributo *CallbackID. Nel caso precedente, Unidrv invia la stringa di comando al spooler di stampa. In quest'ultimo caso, Unidrv chiama il metodo IPrintOemUni::CommandCallback , passando i valori *CallbackID e *Params come argomenti di input.