This blog is mainly a entry/introduction to the print system, one is the Documetn and Printing System, which most windows application might interact with; the other is Printer Device/Spooler system where devices and settings information are concerned.
Document and Printing are more focused on the front-end of the native windows program, which may request services of printing to get documents/images printed.
You can find the doc on the Document printing in this page - printing;
The following shows the high-level view of how different APIs are related.
The documents and Printing topics has several sub-topics. they are
Provides an interface to the print spooler that applications can use to send XPS documents to a printer. Native Windows applications that create XPS documents, such as by using the XPS Document API, can use the XPS Print API to send the XPS documents to a printer. Using the XPS Print API, applications can print to printers that use GDI printer drivers or XPSDrv printer drivers. |
|
Provides an interface to the print spooler so that applications can manage printers and print jobs. Applications use the Print Spooler API to start, stop, control, and configure print jobs managed by the print spooler whether they use the XPS Print API or the GDI Print API to print the content. |
|
Provides applications with functions to manage and convert print tickets. |
|
Provides applications with a device-independent printing interface. Note Developers who are writing applications for Windows Vista and later versions of Windows should consider using the XPS Document API and the XPS Print API in their application. The GDI Print API is suitable for applications that must run on Windows XP and earlier versions of Windows. |
Print System is more concerned about the System, on the Spooler and Printer Device.
You may find more docs from microsoft on this page - Introduction to Printing
The print system has two major parts.
You can find the respective architecture description in the following list.
So in my understanding, the flow is like this
Accoring to the architeture from Print Spooler Architecture page.
I got the following picture
From the description on Printer Driver Architecture I got this picture
MEF: Enhanced Metafile