Windows Desktop Document and Printing, and the Printing System

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

 

 

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. 

 

A diagram that shows how a native Windows application can use the print APIs

 

 

The documents and Printing topics has several sub-topics. they are 

 

 

TechnologyDescription

XPS Print API

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.

Print Spooler API

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.

Print Ticket API

Provides applications with functions to manage and convert print tickets.

GDI Print API

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

 

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.

 

 

  • The spooler
  • The Printer Driver

 

 

You can find the respective architecture description in the following list.

 

 

 

Print Spooler Architecture

Printer Driver Architecture

 

 

 

When a Microsoft Win32 GDI application prints, it calls GDI functions in the Win32 API. These functions pass the information to the GDI graphics engine. The GDI graphics engine either spools the drawing instructions as an enhanced metafile (EMF) file or, together with a printer driver, renders a printable image that can be sent to the spooler. Spooler components interpret EMF files, and they can insert page layout information and job control instructions into the data stream. The spooler then sends the data stream to the serial, parallel, or network port driver associated with the target printer's I/O port. In addition, if printing to an XPS device, the GDI print commands are converted through the GDI to XPS conversion component, and the print job is sent down the XPS print path.

In the XPS print path, available with Windows Vista and Windows 7, printer drivers are based on the XML Paper Specification (XPS). When a Microsoft Win32 XPS application prints, the application calls XPS functions in the XPS Print API. When it prints to queues with XPSDrv printer drivers, the spooler passes the XPS spool file straight to the device for rendering and output. When the XPS file is printed to a GDI device, it is converted to an EMF file through the XPS to GDI Conversion Module. It is then sent through the GDI print path in a manner similar to Win32 GDI applications.

 

So in my understanding, the flow is like this 

 


 

Spooler

Accoring to the architeture from  Print Spooler Architecture  page.

 

I got the following picture


Print Driver

 

From the description on  Printer Driver Architecture I got this picture

 

 

 


 

Glossary/Acronyms

 

MEF: Enhanced Metafile

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值