Procesamiento de un trabajo de impresión

Cuando el spooler está listo para enviar un trabajo de impresión a un procesador de impresión, llama a la función OpenPrintProcessor del procesador de impresión. Esta función realiza actividades de inicialización y devuelve un identificador.

A continuación, el spooler puede llamar a PrintDocumentOnPrintProcessor, que es la función del procesador de impresión que convierte el flujo de datos del formato de entrada al formato de salida y devuelve el flujo de datos convertido al spooler.

Si el formato de entrada es EMF basado en NT, la función PrintDocumentOnPrintProcessor puede controlar la reproducción de los registros EMF mediante las funciones enumeradas en Uso de funciones GDI en procesadores de impresión. Estas funciones proporcionan una interfaz entre el procesador de impresión y el controlador de impresora. Esta interfaz permite a los procesadores de impresión controlar el diseño físico de las páginas de impresora y, por lo tanto, facilita la implementación de características como imprimir varias páginas de documentos por página física (impresión "N hacia arriba"), imprimir páginas en orden inverso e imprimir varias copias de cada página.

El flujo de datos de salida de un procesador de impresión debe devolverse al colador. Normalmente, si la conversión de datos requiere interacción con el archivo DLL de gráficos de impresora del controlador de impresora (como sucede con los datos de entrada EMF), el archivo DLL de gráficos devuelve la secuencia al spooler llamando a EngWritePrinter. Por otro lado, si la conversión no llama a la DLL de gráficos de impresora (como es el caso de los datos de entrada RAW), el procesador de impresión llama a WritePrinter.

La función PrintDocumentOnPrintProcessor se puede interrumpir mediante llamadas asincrónicas desde el colador a la función ControlPrintProcessor del procesador de impresión. Esta función implementa la capacidad de una aplicación para pausar, reanudar o cancelar un trabajo de impresión.

Después de que PrintDocumentOnPrintProcessor termine de convertir el flujo de datos y regrese, el spooler llama a la función ClosePrintProcessor del procesador de impresión.