Freigeben über


Dynamisch generierte Druckerbefehle

Wichtig

Die moderne Druckplattform ist die bevorzugte Methode von Windows für die Kommunikation mit Druckern. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.

Weitere Informationen finden Sie unter Moderne Druckplattform und im Designhandbuch für die Drucksupport-App.

Jedes Mal, wenn Sie einen Druckerbefehl in einer GPD-Datei für einen Unidrv-Minidriver angeben, können Sie eine der folgenden beiden Methoden verwenden:

  • Platzieren Sie die Befehlszeichenfolge in der GPD-Datei.

    Wenn Sie die Befehlszeichenfolge in einer GPD-Datei platzieren, sendet Unidrv den Befehl zur entsprechenden Zeit an den Druckspooler. Diese Befehlszeichenfolgen können Standardvariablen enthalten, die Unidrv vor dem Senden des Befehls auswertet.

  • Stellen Sie eine Callbackfunktion bereit.

    Wenn Sie eine Callbackfunktion bereitstellen, ruft Unidrv die Funktion auf, wenn der Befehl gesendet werden soll, und die Funktion ist dafür verantwortlich, den Befehl an den Druckspooler zu senden. Auf diese Weise können Sie den Code einfügen, der dynamisch eine Befehlszeichenfolge generiert und dann an den Drucker sendet.

Um eine Befehlszeichenfolge in einer GPD-Datei zu platzieren, müssen Sie ein *Cmd-Attribut in den *Command-Eintrag des Befehls einfügen.

Um Code bereitzustellen, der dynamisch eine Befehlszeichenfolge generiert, müssen Sie die folgenden Schritte ausführen:

  • Stellen Sie ein Rendering-Plug-In bereit, das die IPrintOemUni::CommandCallback-Methode implementiert.

  • Fügen Sie ein *CallbackID-Befehlsattribut und optional ein *Params-Attribut in den *Command-Eintrag des Befehls in die GPD-Datei ein.

Wenn Unidrv bereit ist, einen Druckerbefehl auszuweisen, überprüft er die Minidriver-Datenbank, um zu ermitteln, ob der Befehl mit einem *Cmd-Attribut oder einem *CallbackID-Attribut angegeben wurde. Im ehemaligen Fall sendet Unidrv die Befehlszeichenfolge an den Druckspooler. In letzterem Fall ruft Unidrv die IPrintOemUni::CommandCallback-Methode auf, wobei die Werte *CallbackID und *Params als Eingabeargumente übergeben werden.