XPS-filters
Belangrijk
Het moderne afdrukplatform is de voorkeursmiddel van Windows om te communiceren met printers. Wij raden u aan om de IPP-inboxklassedriver van Microsoft te gebruiken, samen met Print Support Apps (PSA), om de afdrukervaring in Windows 10 en 11 aan te passen voor de ontwikkeling van printerapparaten.
Zie de Print support app design guidevoor meer informatie.
Voor het XPS-afdrukpad zijn filters de primaire manier waarop een stuurprogramma afdrukgegevens voorbereidt voor de printer. In versies van het Microsoft Windows-besturingssysteem vóór Windows Vista hebben afdrukprocessors en renderingmodules het werk van filters uitgevoerd.
Een XPS-filter is een DLL die DllGetClassObject en DllCanUnloadNow-functies exporteert. De filterpijplijnbeheerder roept deze functies aan wanneer deze wordt geladen en de DLL van het XPS-filter wordt ontladen. Nadat de filter-DLL is geladen, doet het filterpijplijnbeheer het volgende:
Roept DllGetClassObject- aan om een verwijzing te verkrijgen naar de IClassFactory- interface van het filterobject.
Roept de IClassFactory::CreateInstance methode aan om een verwijzing te verkrijgen naar de IPrintPipelineFilter interface van het filterobject.
Roept de methode IPrintPipelineFilter::InitializeFilter methode aan om het filterobject te initialiseren.
Voordat u de filter-DLL loslaadt, roept de filterpijplijnbeheerder DllCanUnloadNowaan.
In sommige oudere XPS-filters haalt de functie DllGetClassObject een verwijzing op naar de IPrintPipelineFilter interface van het filter in plaats van naar een IClassFactory--interface. Voor compatibiliteit met eerdere versies blijft het filterpijplijnbeheer in Windows Vista en latere versies van Windows deze filters ondersteunen. Voor nieuwe filterontwerpen moet DllGetClassObject- echter een verwijzing ophalen naar een IClassFactory-interface.
XPS-filters maken het afdruksubsysteem robuuster, omdat de filters in een ander proces worden uitgevoerd dan de spooler. Deze "sandboxing" beschermt zowel tegen fouten als dat het een invoegtoepassing in staat stelt om te worden uitgevoerd met verschillende beveiligingsmachtigingen. XPSDrv stelt u ook in staat filters te hergebruiken in verschillende families van printers om de kosten en ontwikkelingstijd te verlagen.
Voor maximale flexibiliteit en hergebruik moet elk filter een specifieke afdrukverwerkingsfunctie uitvoeren. Eén filter past bijvoorbeeld alleen een watermerk toe, terwijl een ander filter boekhouding uitvoert.
Zie XPSDrv Render Modulevoor meer informatie over het filterpijplijnbeheer.
Zie XPS-filters implementerenvoor meer informatie over het implementeren van filters.
Zie Asynchrone meldingen in afdrukfiltersvoor meer informatie over asynchrone meldingen in afdrukfilters.
U moet filters configureren met behulp van het configuratiebestand voor de filterpijplijn.
Zie voor meer informatie over het opsporen van fouten in de afdrukfilterpijplijnservice Een foutopsporingsprogramma koppelen aan deafdrukfilterpijplijnservice.
In Windows 7 kunnen XPS-filters de XPS-rasterisatieservice gebruiken om vaste pagina's in XPS-documenten te converteren naar bitmaps.
Zie XPSRas GPU Usage Decision Treevoor informatie over de manier waarop Windows GPU-versnelling gebruikt voor XPS-rasterisering.