有个铺位旁边养了一支玫瑰,它本跟这个地方不搭,然而现在它开在这里也没什么所谓了。


1.3、打印机驱动程序

打印机驱动程序(Printer driver),指的是计算机的打印设备打印机的硬件驱动程序,该驱动程序承担将计算机上的应用程序数据转换成打印机能够识别、打印的数据的格式。它是操作系统与硬件之间的纽带。如果按照打印机所支持的打印机语言来分类,又可以分为三种类型:

  • 基于主机驱动程序(Host-Based Driver)

  • 基于PCL的驱动程序

  • 基于Postscript的驱动程序

 

1.3.1、基于主机驱动程序(Host-Based Driver)

什么是基于主机的驱动程序呢?像上述的V4打印机驱动程序、最开始我们谈的GDI驱动程序以及XPS驱动程序等其实都是基于主机的驱动程序。他们有一个共同的特征,那就是这些基于主机的驱动程序都是GDI(XPS)+光栅图像处理器的结合。光栅图像处理(raster p_w_picpath processorRIP)),全称光栅图像处理器,是把所需打印的或所需印刷的数据转换成能够用喷墨打印机或激光输出设备输出到纸张或胶片上的光栅图像或点阵的设备。也就是什么意思呢?在整个打印机的打印过程中有非常重要的两个步骤:第一步就是将所需打印的文件或者数据转换为打印机能够识别的数据文件或者格式;第二步才是打印机按照这个格式通过打印机语言进行解释,获知所需打印的内容排版、换行、进纸等等操作,然后通过打印机的心脏——硒鼓以及打印机的血液——碳粉将内容通过喷墨/喷绘打印到纸张上。除了光栅打印,还有一种打印是矢量打印,何为矢量打印呢?在这里我们就提一下传统打印机的打印类型分类:

  • 文本打印机

  • 光栅打印机

  • 矢量打印机

文本打印机顾名思义就是只支持文本的打印机,比如传统的行式打印机只能打印文本,现在我们的环境中不普遍或者说以及看不见了。

光栅打印机是使用光栅进行打印即喷墨/喷绘打印,光栅打印也就是在打印机的内部,有一系列的小的点阵打印,这种点阵打印还可以实现打印照片。光栅打印机包括点阵打印机、传真机和大多数的喷墨打印机都是基于光栅打印。这种类型的打印机的驱动程序需要把DOI的绘图命令转换成光栅图像并把它编码成打印机语言。

矢量打印机则和光栅不一样,一般来说矢量打印机包括激光打印机、绘图仪、Postscript打印机。尽管这些打印机中的一些在实际打印过程中可能是基于光栅的,但是它们都接受基于矢量图的输入,并在打印机中把它们转化成光栅固像。基于矢量的打印机一般把DDI绘图命令转换成打印机语言命令,例如PCL6Postscript。当然基于矢量的打印机一般也支持图像。

基于主机的驱动程序和基于光栅以及矢量的最大不同是:基于主机的打印驱动程序使用计算机而非打印机的内存资源和处理能力进行打印任务的处理,在计算机端完成打印光栅位图的转换过程,在打印机中直接成像。同时基于主机的驱动程序也提高了打印速度。基于主机的打印机利用计算机的处理能力把应用软件的页面信息转换为光栅格式进行打印。由于计算机的处理速度比大多数打印机的处理器快的多,用基于主机打印的打印机处理复杂的打印任务时通常会快些。当然现在的大多数基于主机打印的打印机都使用打印速度更快的USB口而不用并口。这样在Windows 操作系统中可以打印更复杂的打印作业,而不用增加打印机的内存或者是牺牲打印速度和性能。而且使用计算机而非打印机的内存资源和处理能力进行打印任务的处理,减少打印机产生内存溢出的问题:打印机一般也有自己的CPU、内存等设备,但是处理器和内存相对计算机而言是无法比拟的。

好处显而易见,但是坏处也很多?比如说基于主机打印要求计算机的操作系统具备打印引擎,这与页面描述语言(Page DescriptionLanguage) PDL打印不同。这就意味着基于主机的打印只能在Windows上,明确支持打印引擎的系统环境中使用,而不支持没有打印引擎的LinuxUnix OS/2等操作系统。而且最大的一个贴近用户需求的场景无法满足:用户需要进行网络或者远程打印!基于主机的驱动程序要求双向通讯,因此打印机必须和计算机直接相连,因此这种类型的打印机驱动不适合网络打印作业,不支持网络服务器、共享连接。

1.3.2PCL打印机驱动程序

PCL打印机是按照惠普的打印控制语言标准设计的,打印驱动程序生成的数据符合这个标准,因此不同厂商生产的打印机能够兼容PCL打印驱动程序生成的基本打印任务。PCL语言是HP公司在70年代针对其激光打印机产品推出的一种打印机页面描述语言。 PCL指令内嵌于打印数据流,把应用程序输出快速转译成高质量的、特定设备的光栅化图像。

PCL语言最初也是为点阵打印机设计的,PCL3是第一个得到广泛应用的版本,但它只对一些简单的打印任务提供支持。PCL4增加了对图形打印的支持,由于解释工作比较简单,PCL4比后期的PCL5PCL6对打印控制器的要求要低很多。PCL5HP公司专门为激光打印机LaserJetlll设计的,它提供的一些功能与PostScript语言相似,比如开始提供对矢量图形和矢量字库的描述的支持,实现了WYSIWYG(What You SeeIs What You Get,所见即所得),现在主流使用的是PCL6版本。PCL6不同于PCL5或者以前的PCL驱动程序版本,较大区别是将指令发送给打印机的方式有所不同。

这里提到的PostScriptPCL也是我们在前文经常提及的两种语言,是两种标准化的页面描述语言,是与设备无关的打印机语言,即在定义图像时可以根本不考虑输出设备的特性(如打印机的分辨率、纸张大小等),对文本和图形实行同样的处理过程。其工作流程都是首先在计算机端将打印内容解释成标准的页面描述文件然后传送到打印机控制器中,在打印控制器中再将页面描述文件解释成可以打印的光栅图像(Raster Image, 从其工作流程看,此两种方式中都对打印机中的打印控制器有很高的要求,同时要求打印机内部有足够的内存。使用 PCL 语言的打印机在处理文本或一些常见办公应用软件下的文档时具有非常明显的速度优势,比较适合一些普通的商务办公应用。

1.3.3PostScript打印机驱动程序

PostScript打印机驱动程序生成的数据符合Adobe系统公司的PostScript标准,它能够被带有PostScript处理功能的打印机打印,同时它也能够被许多Adobe公司的软件AcrobatPhotoshop等所处理。1985PostScript第一版(level)标准公布,并在之后的几年内获得了巨大的成功,随之在1991Adobe公司发布了PostScript Level 2Level 2标准的化PostScript增加的特性包括速度的提升和可靠性稳定,支持RIP内的分割,支持解压缩,支持复合字体和缓存内容重用的Form机制。PostScript Level 31997年年底出现,许多旧版操作符变成了基于字典的新版本,它提供了更好的颜色处理以及新的允许在程序内进行压缩和解压的过滤器、程序chunking以及先进的错误处理。也是现目前使用的版本。

PostScript出现之前,打印机设计成将字符--通常是ASCII字符打印出来。有许多技术用于这项工作,但是大多数都有一个共性也就是字符在物理上很难更改,就像在打字机键上的金属或者光学平板那样的条带。真正的图形打印是名为绘图仪的特殊的设备所完成的,绘图仪的确是共用一种常见的语言——HPGL,但是除了打印图形之外并没有多大用途。另外,它们通常价格昂贵,速度较慢,所以使用很少。PostScript将打印机和绘图仪的优点组合在一起从而打破了传统。同绘图仪一样,PostScript具有高质量的曲线处理能力并且控制语言简单能够用于不同品牌的打印机;同时PostScript提供了一个生成文本和光栅图形的简单方法。PostScript就是将所有这些不同的内容放在同一页上,这样就比以前的打印机或者绘图仪提供了更好的灵活性。

苹果电脑平台下的打印机驱动程序通常是PostScript的打印驱动程序。PostScript驱动程序在处理PDF文件或在Photoshop等软件下打印大的图形图像文件时具有一定的速度优势,同时其在图形表现准确度色彩表现准确度和一些字库表现准确度方面也比PCL语言有优势,适合对图形和色彩准确度要求比较高的专业应用。


三种打印驱动程序的比较


PCLPS是两种标准化的页面描述语言,其工作流程都是首先在计算机端将打印内容解释成标准的页面描述文件,然后传送到打印机控制器中,在打印控制器中再将页面描述文件解释成可以打印的光栅图像。从其工作流程看,这两种方式都对打印机中的打印控制器有很高要求,同时要求打印机内部有足够的内存。

PCLPS驱动的共同优势是标准化和与设备无关性,对电脑系统资源占用少,而其最新版本中都提高了对字库、图形和图像的解释能力,因此对于打印质量要求较高的产品,大都采用了这两类语言的驱动程序。

基于主机的驱动程序与前两种打印语言的驱动程序的区别是此种解释方式减少了将打印内容解释成页面描述文件,再将页面描述文件解释成光栅图像的过程,而是在电脑中直接将打印内容解释成了可以直接打印的光栅位图。因此大大降低了对打印控制器性能和内存的要求,但同时也增加了对电脑资源的占用。由于其对打印控制器的要求降低,在一定程度上降低了打印机的成本。

 

参考:维基百科:PCLPostScript词条

HP打印机技术论坛:http://support.hp.com/cn-zh/document/c00621153