Freigeben über


Dynamisch generierte Druckerbefehle

Wichtig

Es wird empfohlen, den IPP-Klassentreiber von Microsoft zusammen mit Druckunterstützungs-Apps (PSA) zu verwenden, um die Druckoberfläche in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.

Weitere Informationen finden Sie im Leitfaden zum Erstellen von Druckunterstützungs-Apps.

Jedes Mal, wenn Sie einen Druckerbefehl in einer GPD-Datei für einen Unidrv-Minitreiber 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 zum geeigneten Zeitpunkt an den Druckspooler. Diese Befehlszeichenfolgen können Standardvariablen enthalten, die Unidrv vor dem Senden des Befehls auswertet.

  • Stellen Sie eine Rückruffunktion bereit.

    Wenn Sie eine Rückruffunktion 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. Dadurch können Sie den Code einschließen, 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 einschließen.

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 der GPD-Datei ein.

Wenn Unidrv bereit ist, einen Druckerbefehl ausstellen zu können, überprüft es die minidriver-Datenbank, um festzustellen, ob der Befehl mit einem *Cmd-Attribut oder einem *CallbackID-Attribut angegeben wurde. Im ersten Fall sendet Unidrv die Befehlszeichenfolge an den Druckspooler. Im letzteren Fall ruft Unidrv die IPrintOemUni::CommandCallback-Methode auf und übergibt die Werte *CallbackID und *Params als Eingabeargumente.