- 浏览: 400817 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (309)
- xaml C# wpf (0)
- scala java inner clas (1)
- Tools UML Eclipse UML2 (1)
- Timer .NET Framework (1)
- perl (6)
- python function paramter (1)
- Python Docstring (1)
- Python how to compare types (1)
- Python (8)
- java (5)
- C# (76)
- C# WPF (0)
- p4 (0)
- WPF (46)
- .net (6)
- xaml (1)
- javascript (40)
- windows (10)
- scala (4)
- winform (1)
- c++ (48)
- tools (12)
- cmd (1)
- os (0)
- CI (0)
- shell (0)
- C (2)
- haskell (49)
- functional (1)
- tool (1)
- gnu (1)
- linux (1)
- kaskell (0)
- svn (0)
- wcf (3)
- android (1)
最新评论
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.
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
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.
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
发表评论
-
C# - PInvoke, gotchas on the RegisterClassEx and the CreateWindowEx
2013-06-24 13:49 2576I get an exception message li ... -
c# - Use PInvoke to create simple win32 Application
2013-06-24 11:59 10952In this post, .net platform h ... -
windows - trying to create WIN32 application with PInvoke
2013-06-19 14:34 0While it is stupid to do such ... -
Windows - communication with Mailslots
2012-12-19 14:50 1157Mailslot is some mechanism on W ... -
tools - gpupdate to update the group policy settings
2012-11-20 17:23 491you can update your local group ... -
Exceed to remote connect to Linux box
2012-11-13 17:58 364in this post, I will introduce ... -
Cmd - Remove directories on Windows
2012-10-31 11:18 816on windows, there is no rm -rf ... -
windows - create symbolic/hard links
2012-09-19 14:30 739If you are working on the windo ... -
windows - Maximum Path Length Limitation
2012-09-11 11:13 1232Maximum Path Length Limitat ... -
DPI and Device-Independent Pixels
2012-08-03 17:57 1427This is a repost of the dev cen ... -
Windows Print Metric/Unit Systems in System.Printing and System.Drawing.Priting
2012-08-03 15:59 1687There are two worlds in the win ...
相关推荐
Printing and Document Generation Dealing with Different Hardware Writing and Using Parcelables Responding to URLs Plugin Patterns PackageManager Tricks Remote Services and the Binding Pattern Advanced...
Defines the Java API for XML Processing (JAXP), the Streaming API for XML (StAX), the Simple API for XML (SAX), and the W3C Document Object Model (DOM) API. java.xml.bind Defines the Java ...
- Disables System file protection in WindowsMe and Windows2000 (original and sr1) so IE can be removed safely. Win2000sr2 and XP are a little trickier and are NOT supported in this release (system ...
A cool simulation for anyone who might think about playing the stocks and spending money and get a general idea how the system works. <END><br>83,LoanExpert.zip A bank loan type project that lets ...
3.16 打印及打印假脱机程序函数(Printing and Print Spooler)…………………334 3.17 矩形函数(Rectangle) ……………………………………………………………371 3.18 区域函数(Region)…………………………...
3.16 打印及打印假脱机程序函数(Printing and Print Spooler)…………………334 3.17 矩形函数(Rectangle) ……………………………………………………………371 3.18 区域函数(Region)…………………………...
- **Customization, Printing, and Document Export**:提供了定制、打印和导出文档的功能。 #### Web Integration with WebKit - **Native Application Integration**:可以让Qt应用程序与Web内容进行交互。 - **...
3.16 打印及打印假脱机程序函数(Printing and Print Spooler)…………………334 3.17 矩形函数(Rectangle) ……………………………………………………………371 3.18 区域函数(Region)……………………...
document.loadFromFile("C:\\Users\\Administrator\\Desktop\\DocoumentToPrint.docx"); //创建PrinterSettings对象 PrinterSettings printerSettings = new PrinterSettings(); //指定物理打印机名称 ...