printing - 打印机驱动程序是做什么的?如何拦截/获取它发送给打印机的数据/命令?

标签 printing postscript

打印机驱动程序有什么作用?比如我打开一个word文档,使用File->Print打印文档:打印机驱动是做什么的?它会将 .doc 文档转换为 PostScript,附加一些打印机命令,然后发送到打印机吗?

另一个问题是在windows或*nix下,如何用软件拦截打印机驱动发送给打印机的数据/命令。

最佳答案

简单地说,Windows 打印机驱动程序是一个库,它实现了一个 Windows 定义的独立于设备的成像命令接口(interface),以及另一个与打印机等设备通信的接口(interface)。在接收到来自成像命令接口(interface)的调用后,它会生成一个设备特定的打印文件,并将其发送到通信接口(interface)。

对于 PostScript 打印机驱动程序,该驱动程序由一个与设备无关的共享部分和一个与设备相关的部分组成,前者完成大部分图像命令到 PostScript 语言代码的转换,后者包含有关纸张尺寸的数据和特定打印机型号的功能。这种划分以及共享部分是共享的这一事实对用户来说并不是特别明显。

这些打印相关的接口(interface)都不简单。开始了解它们的两个地方是 Introduction to Printing ,由 Microsoft 开发人员中心和文章 Windows Driver Model , 在维基百科

可以拦截数据并将其发送到其他地方,无论是在成像命令接口(interface)还是通信接口(interface)。但是,这不是一项简单的任务。它需要学习打印系统及其 API,如上面的引用资料所示。

关于printing - 打印机驱动程序是做什么的?如何拦截/获取它发送给打印机的数据/命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561458/

相关文章:

Java属性图打印问题

C语言——如何创建PostScript文件

linux - 这是 troff 文件吗?如果是,如何转换为 ps 或 pdf?

png - Ghostscript 将 Postscript 转换为 PNG 过饱和

html - 如何打印 iframe?

CSS @Print 样式

使用 Zebra 打印机 [ZPL] 打印阿拉伯文文本

assembly - 在 x86 程序集中打印十六进制值

pdf - 如何使用 ghostscript 将 PDF 转换为 PNG?

line - 用Ghostscript绘制矩形(使用PostScript语言)