Condividi tramite


Filtri XPS

Importante

È consigliabile usare il driver di classe posta in arrivo IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi della stampante.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto per la stampa.

Per il percorso di stampa XPS, i filtri rappresentano il modo principale in cui un driver prepara i dati di stampa per la stampante. Nelle versioni del sistema operativo Microsoft Windows prima di Windows Vista, i processori di stampa e i moduli di rendering hanno eseguito il lavoro dei filtri.

Un filtro XPS è una DLL che esporta le funzioni DllGetClassObject e DllCanUnloadNow . La gestione pipeline di filtri chiama queste funzioni quando viene caricata e scaricata la DLL del filtro XPS. Dopo aver caricato la DLL del filtro, gestione pipeline di filtri esegue le operazioni seguenti:

Prima di scaricare la DLL del filtro, il gestore della pipeline di filtri chiama DllCanUnloadNow.

In alcuni filtri XPS meno recenti, la funzione DllGetClassObject recupera un riferimento all'interfaccia IPrintPipelineFilter del filtro anziché a un'interfaccia IClassFactory . Per la compatibilità con le versioni precedenti, gestione pipeline di filtri in Windows Vista e versioni successive di Windows continueranno a supportare questi filtri. Tuttavia, per le nuove progettazioni di filtri, DllGetClassObject deve recuperare un riferimento a un'interfaccia IClassFactory .

I filtri XPS rendono il sottosistema di stampa più affidabile, perché i filtri vengono eseguiti in un processo diverso dallo spooler. Questo "sandboxing" protegge sia dagli errori che consente l'esecuzione di un plug-in con autorizzazioni di sicurezza diverse. XPSDrv consente anche di riutilizzare i filtri tra famiglie di stampanti per ridurre i costi e i tempi di sviluppo.

Per la massima flessibilità e riutilizzo, ogni filtro deve eseguire una funzione di elaborazione di stampa specifica. Ad esempio, un filtro applicherà solo una filigrana, mentre un altro eseguirà solo contabilità.

In GitHub sono disponibili i seguenti esempi di driver e filtri XPS :

  • Opuscolo

  • Conversione dei colori

  • Nup

  • Ridimensionamento delle pagine

  • Filigrana

Per altre informazioni sulla gestione della pipeline di filtro, vedere XPSDrv Render Module.

Per altre informazioni sull'implementazione dei filtri, vedere Implementazione di filtri XPS.

Per altre informazioni sulle notifiche asincrone nei filtri di stampa, vedere Notifiche asincrone nei filtri di stampa.

È necessario configurare i filtri usando il file di configurazione della pipeline di filtro.

Per informazioni su come eseguire il debug del servizio pipeline del filtro di stampa, vedere Collegamento di un debugger al servizio pipeline del filtro di stampa.

In Windows 7, i filtri XPS possono usare il servizio di rasterizzazione XPS per convertire le pagine fisse nei documenti XPS in bitmap.

Per informazioni sul modo in cui Windows usa l'accelerazione GPU per la rasterizzazione XPS, vedere XPSRas GPU Usage Decision Tree.For information about the way Windows uses GPU acceleration for XPS rasterization, see XPSRas GPU Usage Decision Tree.