Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Die Modern Print-Plattform ist die von Windows bevorzugte Methode zur 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 zur Print Support App v1 und v2.
Für den XPS-Druckpfad sind Filter die wichtigste Methode, mit der ein Treiber die Druckdaten für den Drucker vorbereitet. In den Versionen des Microsoft Windows-Betriebssystems vor Windows Vista übernahmen Druckprozessoren und Rendermodule die Arbeit der Filter.
Ein XPS-Filter ist eine DLL, die die Funktionen DllGetClassObject und DllCanUnloadNow exportiert. Der Filter-Pipeline-Manager fragt diese Funktionen an, wenn er die XPS-Filter-DLL lädt und entfernt. Nach dem Laden der Filter-DLL führt der Filter-Pipeline-Manager folgende Schritte aus:
Ruft DllGetClassObject auf, um eine Referenz auf die IClassFactory-Schnittstelle des Filterobjekts zu erhalten.
Ruft die Methode IClassFactory::CreateInstance auf, um eine Referenz auf die IPrintPipelineFilter-Schnittstelle des Filterobjekts zu erhalten.
Ruft die Methode IPrintPipelineFilter::InitializeFilter auf, um das Filterobjekt zu initialisieren.
Bevor die Filter-DLL entfernt wird, ruft der Filter-Pipeline-Manager DllCanUnloadNow auf.
In einigen älteren XPS-Filtern ruft die Funktion DllGetClassObject einen Verweis auf die IPrintPipelineFilter-Schnittstelle des Filters ab, anstatt auf eine IClassFactory-Schnittstelle. Aus Gründen der Abwärtskompatibilität wird der Filter-Pipeline-Manager in Windows Vista und späteren Versionen von Windows diese Filter weiterhin unterstützen. Für neue Filterdesigns sollte DllGetClassObject jedoch einen Verweis auf eine IClassFactory-Schnittstelle abrufen.
XPS-Filter machen das Drucksubsystem robuster, da die Filter in einem anderen Prozess als der Spooler laufen. Dieses „Sandboxing“ schützt sowohl vor Fehlern als auch vor der Möglichkeit, ein Plug-in mit unterschiedlichen Sicherheitsberechtigungen auszuführen. XPSDrv ermöglicht Ihnen auch die Wiederverwendung von Filtern für verschiedene Druckerfamilien, um Kosten und Entwicklungszeit zu senken.
Für maximale Flexibilität und Wiederverwendung sollte jeder Filter eine bestimmte Druckverarbeitungsfunktion erfüllen. Ein Filter wendet zum Beispiel nur ein Wasserzeichen an, während ein anderer nur die Bilanzierung vornimmt.
Weitere Informationen über den Filter-Pipeline-Manager finden Sie unter XPSDrv Rendermodul.
Weitere Informationen zur Implementierung von Filtern finden Sie unter Implementierung von XPS-Filtern.
Weitere Informationen über asynchrone Benachrichtigungen in Druckfiltern finden Sie unter Asynchrone Benachrichtigungen in Druckfiltern.
Sie müssen die Filter mit Hilfe der Konfigurationsdatei für die Filterpipeline konfigurieren.
Informationen zum Debuggen des Druckfilter-Pipelinedienstes finden Sie unter Anhängen eines Debuggers an den Druckfilter-Pipelinedienst.
In Windows 7 können XPS-Filter den XPS-Rasterisierungsdienst verwenden, um feste Seiten in XPS-Dokumenten in Bitmaps zu konvertieren.
Informationen darüber, wie Windows die GPU-Beschleunigung für die XPS-Rasterung verwendet, finden Sie unter XPSRas GPU-Nutzungsentscheidungs-Verzeichnis.