Partager via


Commandes d’impression générées dynamiquement

Important

La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.

Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.

Chaque fois que vous spécifiez une commande d’imprimante dans un fichier GPD pour un minipilote Unidrv, vous pouvez utiliser l’une des deux méthodes suivantes :

  • Placez la chaîne de commande dans le fichier GPD.

    Lorsque vous placez la chaîne de commande dans un fichier GPD, Unidrv envoie la commande au spooler d’impression au moment approprié. Ces chaînes de commande peuvent inclure des variables standard, qu’Unidrv évalue avant d’envoyer la commande.

  • Fournissez une fonction de rappel.

    Si vous fournissez une fonction de rappel, Unidrv appelle la fonction lorsqu’il est temps d’envoyer la commande, et la fonction est responsable de l’envoi de la commande au spooler d’impression. Cela vous permet d’inclure le code qui génère dynamiquement une chaîne de commande et l’envoie ensuite à l’imprimante.

Pour placer une chaîne de commande dans un fichier GPD, vous devez inclure un attribut *Cmd dans l’entrée *Command de la commande.

Pour fournir un code qui génère dynamiquement une chaîne de commande, vous devez faire ce qui suit :

  • Fournir un plug-in de rendu qui implémente la méthode IPrintOemUni::CommandCallback.

  • Inclure un attribut de commande *CallbackID et, éventuellement, un attribut *Params, dans l’entrée *Command de la commande dans le fichier GPD.

Lorsque Unidrv est prêt à émettre une commande d’imprimante, il vérifie la base de données du minipilote pour déterminer si la commande a été spécifiée avec un attribut *Cmd ou avec un attribut *CallbackID. Dans le premier cas, Unidrv envoie la chaîne de commande au spooler d’impression. Dans le second cas, Unidrv appelle la méthode IPrintOemUni::CommandCallback, en passant les valeurs *CallbackID et *Params comme arguments d’entrée.