Condividi tramite


Comandi della stampante generati dinamicamente

Importante

La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di 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 per stampanti.

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

Ogni volta che si specifica un comando della 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 allo 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 specifica una funzione di callback, Unidrv chiama la funzione quando è il momento di inviare il comando e la funzione è responsabile dell'invio del comando allo spooler di stampa. In questo modo è possibile includere il codice che genera dinamicamente una stringa di comando e quindi lo invia alla stampante.

Per inserire una stringa di comando in un file GPD, è necessario includere un attributo *Cmd nella voce *Command del comando.

Per fornire 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 della 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 allo spooler di stampa. Nel secondo caso, Unidrv chiama il metodo IPrintOemUni::CommandCallback , passando i valori *CallbackID e *Params come argomenti di input.