Print Management Guide - The printing process
- A user on a Windows client computer chooses
to print a document.
- If the document is submitted from a Windows
application, the application calls the graphics
device interface (GDI), which calls the printer
driver associated with the target printer. Using
the document information from the application, the
GDI and the driver exchange data to render the print
job in the printer language of the printer, and
then pass it to the client-side print spooler. If
the client is using an operating system other than
Windows, or a non-Windows application, another component
replaces the GDI to perform a similar task.
- The client computer delivers the print job to
the print server. For Windows clients, the client-side
spooler makes a remote procedure call (RPC) to the
server side of the spooler, which uses the print
router to poll the remote print provider on the
client side. The remote print provider initiates
another RPC to the server spooler, which receives
the print job over the network.
- On the print server, print jobs from Windows
clients are of the enhanced metafiles (EMF) data
type. Many other applications use the RAW (ready
to print) data type.
- The router on the server passes the print job
to the local print provider on the server (component
of the spooler), which spools the print job (writes
it to the disk).
- The local print provider polls the print processor.
The print processor recognizes the job's data type
and receives the print job. The print processor
then converts the print job according to its data
- If the target printer is defined on the client
computer, the print server service decides whether
the server's spooler should alter the print job
or assign a different data type. The print job then
passes to the local print provider, which writes
it to the disk.
- Control of the print job is passed to the separator
page processor, which adds a separator page, if
specified, to the front of the job.
- The job is despooled to the print monitors.
For bidirectional printers, a language monitor handles
the two-way communication between the sender and
the printer, and then it passes the print job to
a port monitor. If the printer is not bidirectional,
the print job goes directly to the port monitor,
which sends it to the target printer (or, to another
network print server).
- The printer receives the print job, converts each page into bitmap format, and prints it.