Freigeben über


Umgang mit geräteverwalteten Oberflächen

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.

Wenn Unidrv Seitenbilder rendert, werden GDI-verwaltete Zeichenoberflächen verwendet. Alle Bilder werden als Bitmaps gerendert. Für Geräte mit Funktionen, die in diesem Szenario nicht ausgenutzt werden können, z. B. die Möglichkeit zum Zeichnen von Vektoren, können Sie eine benutzerdefinierte Treiberunterstützung für eine geräteverwaltete Zeichnungsoberfläche bereitstellen. Um eine geräteverwaltete Oberfläche zu unterstützen, müssen Sie ein Rendering-Plug-In bereitstellen, das Folgendes implementiert:

Die Hooking-Funktionen können nicht auf die Eng-Präfix-Supportdienste von GDI zurückrufen, wenn sie auf einer geräteverwalteten Oberfläche zeichnen. Sie können jedoch eine temporäre Bitmapoberfläche erstellen und diese Oberfläche dann an Engpräfix-Zeichnungsfunktionen übergeben (siehe Rendern eines Druckauftrags).

Die IPrintOemUni::D riverDMS-Methode wird jedes Mal aufgerufen, wenn ein Druckauftrag gerendert wird, sodass das Rendering-Plug-In den Typ der Renderingoberfläche (GDI-verwaltet oder geräteverwaltet) für jeden Auftrag angeben kann. Wenn Sie die Oberflächenauswahl auf einer auswählbaren Option auf der Benutzeroberfläche verwenden, müssen Sie auch ein Benutzeroberflächen-Plug-In bereitstellen.

Zeichnen von Text auf einer geräteverwalteten Oberfläche

Das Rendering-Plug-In muss die Funktion DrvTextOut von Unidrv (zusammen mit allen anderen grafischen DDI-Zeichenfunktionen) ausklinken. Das Erstellen von Text für eine geräteverwaltete Oberfläche umfasst die Interaktion zwischen den folgenden vier Funktionen:

Die Schritte zum Anzeigen von Text auf einer geräteverwalteten Oberfläche sind wie folgt:

  1. GDI ruft die DrvTextOut-Funktion von Unidrv auf.

  2. Unidrv ruft die Hooking-Funktion DrvTextOut des Rendering-Plug-Ins auf.

  3. Die Hooking-Funktion sendet Befehle an das Gerät, um den Pinsel, die Drehung und den Clipbereich des Texts anzugeben.

  4. Die Hooking-Funktion ruft die IPrintOemDriverUni::D rvUniTextOut-Methode von Unidrv auf, die heruntergeladene Schriftarten zum Ausgeben des Texts verwendet. Diese Methode behandelt auch die Glyphen-basierte Beschneidung.

  5. Wenn IPrintOemDriverUni::DrvUniTextOut eine herunterladbare Schriftart nicht verwenden kann (weil die Schriftart nicht verfügbar oder gedreht ist), ruft es die Methode IPrintOemUni::TextOutAsBitmap des Rendering-Plugins auf, die den Text als Bitmap zeichnet.

  6. Nach der Rückkehr von IPrintOemDriverUni::DrvUniTextOut muss die Hooking-Funktion DrvTextOutUnterstreichungen und Durchstreichungen zeichnen, basierend auf den Rechtecken, die durch den Parameter DrvTextOut der Funktion prclExtra angegeben werden, und zwar unter Verwendung von Vektorbefehlen (sofern unterstützt).