PCL

维基百科,自由的百科全书
跳转至: 导航搜索

PCL的全称为Printer Command Language,它是惠普公司开发的一种作为打印机协议页面描述语言,實際上,它已经成为业界标准。PCL最初是为1984年的早期喷墨打印机所设计的,后来开始发布用于从热敏打印机点阵打印机激光打印机等不同打印机的PCL版本。后来的PCL版本开始支持HP-GL以及PJL语言。

偶尔人们也会誤會PCL是Printer Control Language,实际上这是錯的。

PCL从1到5综述[编辑]

PCL 1到5e/5c有共同的基础,它们按照所收到的数据的先后顺序进行处理与解释。从用户的角度来看,可以用打印机驱动程序生成PCL数据流。在不同的应用程序中都可以很容易地输出PCL。

  • PCL 1于1984年出现,用于HP ThinkJet 2225,它带有基本的文本与图形打印机功能,分辨率最大为150 DPI
  • PCL 1+随着HP QuietJet 2227发布。
  • PCL 2加入了Electronic Data Processing/Transaction功能。
  • PCL 3于1984年随着最初的HP LaserJet出现。它支持位图字体,并且最大分辨率提高到300 DPI。其它支持PCL 3的产品包括HP DeskJet喷墨打印机、HP 2932系列点阵打印机以及HP RuggedWriter 2235点阵打印机。PCL3仍然在几款击打式打印机上使用以取代过时的HP型号。
  • PCL 3+单色)以及PCL 3c+彩色)在后来的HP DeskJet以及HP PhotoSmart上开始使用。
  • PCL 3GUI用在HP DesignJet以及一些DeskJet系列的打印机产品。它使用与标准PCL 3不兼容的一种压缩栅格模式。
  • PCL 4于1985年随着HP LaserJet II出现。它加入了宏处理、更大的位图字体及图形。在许多应用程序中仍然在使用PCL 4。
  • PCL 5于1990年3月随着HP LaserJet III发布。它加入了Intellifont字体缩放(现在隶属于愛克發·吉華集團Compugraphics所开发)、轮廓字体以及HP-GL/2矢量图形等功能。
  • PCL 5e(PCL 5增强版)于1992年10月随着HP LaserJet 4发布,它添加了打印机、PC以及微软视窗字体间的双向通信功能。
  • PCL 5c于1992年在HP PaintJet 300XL与HP Color LaserJet中增加彩色打印的能力。

PCL 6综述[编辑]

PCL 6于1995年左右发布,它包括:

  • PCL 6增强版:它是针对如微软视窗这样的图形用户界面进行优化的面向对象页面描述语言,并且进行了压缩以优化性能。这个版本以前称为PCL XL
  • PCL 6标准版:等价于PCL 5e或者PCL 5c,以提供向后兼容的能力。
  • 字体合成:提供可缩放字体、字体管理以及表格及字体的存储。PCL 6增强版的显著特点有容易进行修改以用于未来的HP打印机的新的模块化架构、更快的返回应用程序的速度、更快的打印复杂图形的速度、更有效的数据传输、更好的所见即所得的打印效果、更好的打印质量、更好的保真度、完全的向后兼容。在早期的实现中,PCL 6的市场推广工作做得不好,导致术语上出现了一些混淆。后来PCL XL改名为PCL 6增强版,但是许多第三方的产品仍然使用旧的名字。有一些产品声称与PCL 6增强版兼容,但是可能并不包括PCL 5的后向兼容性。PCL 6增强版主要是微软视窗以及CUPS的打印机驱动程序所使用。由于其结构以及压缩方法的问题,普通的应用程序很少使用这种格式。

PCL 6增强版是一个类似于PostScript的基于堆栈面向对象的协议。但是它与PostScript既可以使用二进制代码、又可以使用文本不同,PCL 6增强版只能使用二进制代码。PCL编程文档中的文本的命令及代码都必须用HP的JetASM这样的工具进行编译才能发送到打印机进行打印。或许是由于PCL 6的设计侧重于更小的数据量,因此其运算符灵活性与正交性不如PostScript。

PCL 6增强版的设计与微软视窗图形设备接口相匹配。按照这种方式,视窗打印机驱动程序只是简单地传送GDI命令,很少对数据进行修改,因此返回应用程序的速度也比较快。微软公司用它的新一代XPS格式扩展了这个概念,支持XPS的打印机的开发工作正在进行中。这不是一个新的概念,它与Display Postscript以及苹果公司的Quartz类似,与直接将压缩位图发送到打印机的“GDI打印机”有所不同。

PCL 6类的版本[编辑]

Class 1.1[编辑]

  • 绘图工具:支持直线圆弧椭圆/弦、矩形及圆角矩形、多边形、贝塞尔路径、剪切路径、栅格图像扫描线、栅格运算。
  • 色彩处理:支持1/4/8-位调色板、RGB/灰度色彩空间。支持自定义的半色调pattern,最多支持256种 pattern。
  • 压缩:支持行程长度编码
  • 测量单位:英寸、毫米、十分之一毫米。
  • 纸张处理:支持自定义或者预定义的纸张,包括常见的Letter、Legal、A4等。可以选择从手动进纸、纸匣进纸。纸张可以设置水平或者竖直方向,可以设置纵向、横向以及横向与纵向旋转180度。
  • 字体:支持位图以及TrueType字体,支持8或者16位的code points。所用字符集与PCL 5不同。当使用位图字体的时候,许多缩放命令都不能使用。当使用TrueType字体的时候,不支持可变长度描述符以及连续块参数。轮廓字体可以旋转、缩放、切变。

Class 2.0[编辑]

  • 压缩:添加了JPEG
  • 纸张处理:纸张可以输出到高达256个不同的纸盒中。添加了A6以及Japanese B6两种预定义的纸张。添加第三个预设纸匣,248个外部纸匣。
  • 字体:可以纵向写字。

Class 2.1[编辑]

  • 色彩处理:添加了色彩匹配特性。
  • 压缩:添加了Delta Row数据压缩。
  • 纸张处理:在生成一个新页面时方向、纸张大小可选。添加B5、JIS 8K、JIS 16K、JIS Exec纸张大小。

Class 3.0[编辑]

  • 色彩处理:允许矢量图形位图以及文本使用不同的半色调设置。支持自适应的半色调处理。
  • 协议:支持PCL passthrough,允许PCL 6数据流使用PCL 5的特点。但是,当使用这个特性的时候,无法保留一些PCL 6的状态。
  • 字体:支持PCL字体。

PJL综述[编辑]

PJL(Printer Job Language)是HP LaserJet IIIsi上引入的。PJL添加了打印任务级别的控制,如打印机语言切换、任务切割、环境变量、状态读取、设备存在性检查以及文件系统命令。 PJL以"\x1B%-12345@PJL COMMENT\x0D"开始,以"\x1B%-12345"结束,其中每条指令应当独占一行,指令间需要有carriage return(0x0D)。使用者可以自定义指令。

外部链接[编辑]