Treibersteuerung und Gerätesteuerung
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 im Designhandbuch Print Support-App.
Wenn die Steuerung des Farbmanagements entweder durch den Treiber oder durch die Druckerhardware erfolgt, muss die Druckergrafik-DLL des Treibers das Flag GCAPS_ICM in der Struktur DEVINFO festlegen.
Der Treiber muss die Unterstützung für den CMYK-Farbraum angeben (falls zutreffend), wie in Unterstützung des CMYK-Farbraums beschrieben.
Druckergrafik-DLLs müssen die folgenden drei Funktionen definieren:
GDI ruft die Funktion DrvIcmCreateColorTransform auf, um den Treiber mit ICC-Profilen für den Druckauftrag zu versorgen. Anhand dieser Profile kann die Funktion eine interne Farbtransformation erstellen, die bei der Korrektur von Farbinformationen verwendet wird. Eine Farbtransformation ist eine treiberspezifische, intern definierte Zuordnung von einem Farbraum zu einem anderen. Die Funktion gibt ein Handle für die Transformation zurück, das GDI speichert.
Flags innerhalb der BRUSHOBJ- und XLATEOBJ-Strukturen zeigen an, ob die Farbverwaltung durch das System (oder die Anwendung) oder durch den Treiber (oder das Gerät) durchgeführt wird. In jeder vom Treiber implementierten Grafik-DDI-Zeichenfunktion, die eine (oder beide) dieser Strukturen empfängt, müssen die Flags überprüft werden. Wenn das System oder die Anwendung derzeit das Farbmanagement übernimmt, darf der Treiber oder das Gerät dies nicht tun. Wenn das Farbmanagement des Treibers oder des Geräts aktiviert ist, muss die Grafik-DDI-Funktion BRUSHOBJ_hGetColorTransform oder XLATEOBJ_hGetColorTransform (oder beide) aufrufen, um ein Handle für die zu verwendende Farbtransformation zu erhalten. Das Handle ist eines, das der Treiber als Antwort auf einen früheren Aufruf seiner Funktion DrvIcmCreateColorTransform zur Verfügung gestellt hat.
Umgang mit proprietärem Farbmanagement
Bei einigen Geräten wird ein proprietäres Farbmanagement durchgeführt (entweder durch den Treiber oder durch die Hardware), unabhängig davon, ob ICM aktiviert wurde. Treiber für solche Geräte dürfen die Durchführung einer Farbkorrektur nicht zulassen, wenn die empfangenen Bilddaten bereits korrigiert wurden. Vorkorrigierte Daten können empfangen werden, wenn:
Eine Anwendung hat das Bild „außerhalb des DC“ farbkorrigiert (siehe die Microsoft Windows SDK-Dokumentation).
Das Farbmanagement wird vom System durchgeführt.
In jedem dieser Fälle werden sowohl das Flag BR_HOST_ICM im Mitglied flColorType von BRUSHOBJ als auch das Flag XO_HOST_ICM im Mitglied flXlate von XLATEOBJ festgelegt. Diese Flags können auch gesetzt werden, wenn das dmICMMethod-Mitglied von DEVMODEW DMICMMETHOD_NONE ist.