Condividi tramite


Elaborare un processo di stampa

Quando lo spooler è pronto per inviare un processo di stampa a un processore di stampa, chiama la funzione OpenPrintProcessor del processore di stampa. Questa funzione esegue attività di inizializzazione e restituisce un handle.

Il spooler può quindi chiamare PrintDocumentOnPrintProcessor, ovvero la funzione processore di stampa che converte il flusso di dati dal formato di input al formato di output e restituisce il flusso convertito nel spooler.

Se il formato di input è EMF basato su NT, la funzione PrintDocumentOnPrintProcessor può controllare la riproduzione dei record EMF usando le funzioni elencate in Uso di funzioni GDI nei processori di stampa. Queste funzioni forniscono un'interfaccia tra il processore di stampa e il driver della stampante. Questa interfaccia consente ai processori di stampa di controllare il layout fisico delle pagine della stampante e quindi facilita l'implementazione di funzionalità come la stampa di più pagine documento per pagina fisica ("N-up"), la stampa di pagine in ordine inverso e la stampa di più copie di ogni pagina.

Il flusso di dati di output di un processore di stampa deve essere restituito al spooler. In genere, se la conversione dei dati richiede l'interazione con la DLL grafica della stampante del driver della stampante (come accade per i dati di input EMF), la DLL grafica restituisce il flusso al spooler chiamando EngWritePrinter. D'altra parte, se la conversione non chiama la DLL grafica della stampante (come accade per i dati di input RAW), il processore di stampa chiama WritePrinter.

La funzione PrintDocumentOnPrintProcessor può essere interrotta da chiamate asincrone dal spooler alla funzione ControlPrintProcessor del processore di stampa. Questa funzione implementa la possibilità di sospendere, riprendere o annullare un processo di stampa.

Al termine della conversione del flusso di dati e restituito, printDocumentOnPrintProcessor chiama la funzione ClosePrintProcessor del processore di stampa.