打印指令,又称打印控制命令。计算机通过打印控制语言,以软件命令的方法来控制打印机操作,解释执行打印数据,获得打印结果的。对于打印机所实现的复杂功能而言,打印控制语言是基础。它直接关系到打印输入质量的优劣。因为增强我们对打印机控制语言的了解,就可以更好地选择和使用打印机。

  目前主流的打印机控制语言只要有三种:

  Epson公司的Esc命令集
  HP公司的PCL命令集
  Adobe公司的PostScript(简称PS)命令集

  ESC命令集是针式打印机和票据打印领域的事实上的工业标准;PCL命令集是低挡激光打印机、喷墨机印机领域的工业标准;PS命令集则是高档排版领域占垄断地位的页面描述语言。

  ESC命令集和PCL命令集是命令解释型的语言,与高级编程语言中的BASIC相似,对每一条命令打印机立即给予响应执行。控制方式简单、方便、快速,便不能描述复杂的页面。

  HPGL向量图形命令集(用于PCL5)和PS命令集都是编译型的语言。与高级编程语言中的C相似,对数条命令组成的完整程序进行编译、解释、最后驱动打印。HPGL命令集与PS相比之下又具有一些命令解释型语文的特点,只有PS语文才是一种真正的编译型页面描述语言。但两者都能够以打印页面为单位,描述打印信息,即都可实现复杂图形和图象的打印输出。

  使用ESC、PCL、PostScript的软件比例占全部软件的75%以上。由此可见,这三种打印控制命令语言对于打印应用程序设计,起到了举足轻重的作用。

  对于上述打印机控制语言有了一个初步的认识以后,我们来对各种语言作一个较全面的介绍。
  一、Epson公司的Esc命令集

  日本的EPSoN公司是生产计算机外部设备的者牌公司,在目前的打印机市场,尤其是针式打印机市场占有很大一部分份额。它所推行的ESC打印控制命令(EPSON StandardCode for Printer)已经成为针式打印机控制语言事实上的工业标准,ESC/POS打印命令集是ESC打印控制命令的简化版本,现在大多数票据打印都采用ESC/POS指令集。绝大多数打印机都有EPSON ESC的软件命令仿真功能,而且其它打印控制命令的格式和功能也都与ESC代码集类似。

  由于早期的操作系统DOS与现在windows的结构不同,在打印机内部软件和应用软件之间没有由硬件厂商提供的打印驱动程序,必须由应用软件直接通过硬件接口来控制打印机,所以从ESC指令出现开始,它就是公开的,否则没有应用软件可以使用它,而除了标准的ESC指令外,每种型号的打印机其指令又不太一样,所以在DOS软件中,你可以看到每个应用软件都只是支持为数不多的几种常用打印机。
  
  Esc指令在形式上分为两种格式,一种是文本方式控制码,一种是Escape转义序列码。文本方式控制码由一字节字符码表示,实现的是与打印机硬件操作有关的指令,Escape序列码由转义字符和参数字符或打印数据组成。

  二、HP公司的PCL语言

  PCL语言是HP公司于70年代针对其激光打印机产品推出的一种打印机页面描述语言。PCL语言与ESC指令一样是开放的。

  PCL语言最初也是为点阵打印机设计的,PCL3是第一个得到广泛应用的版本,但它只支持一些简单的打印任务。PCL4虽然还只能应用在个人打印机中,但增加了对图形打印的支持,但由于解释工作比较简单,PCL4比后期的PCL5和PCL6对打印控制器的要求要低很多。

  到PCL4时,功能已大大增强,主要是支持可任意改变的字模(Scalabe Fort)和支持HP的绘图语言即HP GI—/2语言,后者使激光打印设备可作为绘图设备使用。

  PCL5(PRINTER CONTROL LANGUAGE VERSION 5)是HP公司推出的一种打印控制语言,是一种解释性的命令语言,这与BASIC语言类似。打印机对每条接收到的命令,马上解释执行,而不用等待所有命令全部接收。与此相对的是编译型的语言(如C)。ADOBE公司的PostScript打印页描述语言等),强调语句的模块化和完整性,只有全部命令都接收到后进行编译连接,才能完成相应的功能。

  1996年HP公司发布了PCL6,它更加灵活,是一个目标朝向的控制语言,使处理多图形的文件的速度大大加快,实现了更好的WYSIWYG,因此可以更好地处理Web页面。

  三、Adobe公司的PostScript(简称PS)命令集

  PostScript是Adobe公司的产品,和Epson和HP不一样,ADOBE公司不是打印设备制造商,而是一个工具软件开发商,所以PostScript语言从它一诞生就有着与ESC和PLC完全不同的特性,更符合软件的设计思想,它是一种与设备无关的打印机语言,即在定义图像时可以根本不考虑输出设备的特性(如打印机的分辨率、纸张大小等),而且它对文本和图形实行同样的处理过程,这就给处理字体带来了极大的灵活性。

  由于PostScript的设备无关特性,在输出到特定输出设备,譬如对分辨率、纸张大小、进纸盒进行选择时,PostScript通过打印机描述(PostScript Printer Description )文件来实行各种打印机的不同特性。PPD文件主要提供以下与打印机有关的特定信息: 默认/最高分辨率,是否支持半色调监控,用户设定的监控信息,页面大小定义,页面可打印区域,默认字体(通常为Courier),是否支持双面打印等等。

  通过PS驱动程序,各种不同的应用软件将各自的数据转换成PostScript格式。从打印引擎的工作原理可知,打印机只能接受位图格式,当打印机控制器将PostScript转换成位图格式时,由于PostScript十分复杂,一般的打印控制器难以胜任,通常由打印机中专门的光栅图像处理器(Raster Image Processor)来完成这一转换过程。
  由于使用PostScript打印机对打印控制器的要求都比较高,另外PostScript是Adobe公司的注册产品,打印机厂商在其产品中使用PostScript语言要支付Adobe公司一笔费用,就像PC厂商支付给Microsoft公司的操作系统费用一样,因此使用PostScript的打印机的成本要比使用其他语言和控制方式的打印机要高。因此目前也出现了一些PostScript仿真,像HP公司的一些激光打印机中使用的PostScript仿真,可以和Adobe公司的PostScript完全兼容,也无需再支付Adobe公司相应的费用。

  PostScript语言是一种广泛应用于光栅设备的页描述语言。它能在设备无关的前提下,提供极强的正文与图形描述能力,例如可任意平移、旋转、缩放正文字符和以字符及任意封闭区域作为裁剪区的边界。由于PostScript的这些特点,加上性能优越、价格低廉的激光打印机的出现,特别是Apple Laser writer激光打印机在商业上的成功,使得PostScript已经成为高质量专业排版印刷领域”事实上”的工业标准。

  PostScript语言的真正兴起是Adobe公司在1985年发表的PostScriptlevell。其丰富的图形功能,高质量的T叩e1字模以及对页面描述的设备无关性,使PostScr5pt语言被普遍接受并成为事实上的工业标准。各种流行的西文排版和图形软件,如Pagemaker,Veatura,Quake eXpess,CorelDraw等等,都支持PostScript。

  在1990年底,Adobe公司推出的PostScriptlevel2,无论是在描述能力还是在描述效率上都更上一层楼,进一步巩固了PostScript语言作为标准页面描述语言的地位。而且,最近国际标准组织ISo的JTCl/SC24委员会已把PostScript语言推荐为开发图形正文标准的一个主要参考语言。

  postscript语言之所以得到广泛的应用,是与它所具有的极强的处理图形正文的功翰分不开的。作为一种页描述语言(即PDL),Post3cript具有如下特点:

  1)能够精确地描述各种复杂的图形、图象以及正义,可对它们进行平移、旋转、放缩答操作;而且它把正文作为图形来处理。

  2)采用灵活的摸板/涂料式(Stencil/Paint)的图象映象模型。不仅适合于Ntml及向量笔划描述图形,而且适合于采用三次曲线轮廓来实现图形描述。这种模型的裁剪区域不仅可用矩形框,而且可用封闭的任意区域。
  
  3)支持设备独立性。
  
  4)它也是一种程序设计语言,具有后缀式的表达方法。由前言和文稿两部分组成程序结构,有13种简单及复合对象类型,其操作符的语义是动态的。

  PostScr5pt语言是一种页面描述语言,打印的页面数据信息通过打印机内置的PostScript语言解释器完成,当解释器执行描述字16、图形和图象的命令时,它把高级的PostScript语言描述转换为特定输出设备(如打印机)上的低级光栅数据格式。Postscript语言有三分之一的操作符面向图形处理,其余的三分之二可用作一般的计算机程序设计语言。

  一般说来,PCL语言比较适合一些普通的商务办公应用,而PostScript语言更加适合对图形和色彩准确度要求比较高的专业应用。

EPSON ESC/POS指令

EPSON ESC/POS 控制命令
英文模式下的命令
代码                     功能                                代码               功能
LF                       换行                                  ESC m           局部切割
CR                       回车                                ESC o           印章
ESC SP             设置右边界                     ESC q           释放纸
ESC !                 设置打印方式                 ESC r           选择打印颜色
ESC *                设置位映射方式             ESC z           设置或取消两页并行打印
ESC @                 初始化打印机             ESC BEL         蜂鸣器ON/OFF
ESC R                 选择国际字符子集        ESC c5          禁止/使能面板开关
ESC d                打印及N行进纸             ESC c6          禁止/使能ON-LINE开关
ESC t                 选择字符码表                 ESC p           产生指定脉冲
ESC l                 选择或取消倒过来的字符    ESC V           发送打印机状态
ESC c0             选择打印页                        ESC ~           LED ON/OFF
FF                     打印送出单页                     HT              水平TAB
RS                     流水TAB                             ESC %         选择或取消用户自定义字符集
ESC 2             选择行间距为1/6英寸         ESC &         定义用户自定义字符集
ESC 3             设置行进为最小间距         ESC D         设置TAB位置
ESC <             返回行首                             ESC i         全切割
ESC C             设置单页长度                     ESC f         设单页等待时间
ESC F             选择或取消单页退纸区     ESC e         打印病退回N行
ESC J             以最小间距进行打印和进纸ESC c4         选择打印纸及检测器(终止打印)
ESC K             以最小间距进行打印和退纸ESC c3         选择纸结束信号输出
ESC U             选择或取消单向打印     ESC c1         选择行间距
中文模式下的命令
代码 功能 代码 功能
FS & 选择中文字符模式 FS – n 设置中文字符下划线模式开关
FS . 取消中文模式 FS ! n 选择中文字体

除了采用PostScript和PCL的激光打印机以外,还有一种GDI打印方式,是Graphics Device Interface的简略缩写。这种打印借助PC的处理能力来进行页面渲染,然后PC以位图的形式发送给打印机。其实打印机只是作为一个打印引擎,因此没有必要采用昂贵的处理器或大容量的内存,所以GDI打印相对更便宜。但是,以位图形式发送整个页面的方法会占用许多的时间,这降低了打印的速度,而且重新获得PC的控制也需要更长的时间。一般每分钟打印速度在10张以上的激光打印机不会采用这种打印语言。

基于主机的驱动程序使用计算机而非打印机的内存资源和处理能力进行打印任务的处理 , 在计算机端完成打印光栅位图的转换过程,在打印机直接成像。

特点:

A 、 加速了打印速度。基于主机的打印机利用计算机的处理能力把应用软件的页面信息转换为光栅格式进行打印,由于现在的计算机的处理速度比大多数打印机的处理器快的多,用基于主机的打印机打印复杂的打印任务时通常会快些。大多数基于主机打印的打印机都使用打印速度更快的 USB 口而不用并口。例如, HP Color LaserJet 1500 标配基于主机驱动 ,在 Windows and Macintosh 操作系统中可以打印更复杂的打印作业而不用增加打印机的内存或者是牺牲打印速度和性能。

B 、 基于主机打印机可以处理光栅数据图像,减少打印机产生内存溢出的问题。

C 、 基于主机打印要求计算机操作系统具备打印引擎,不能从计算机接受 ASCII 文本,这与页面描述语言( Page Description Language ) PDL 打印不同。这就意味着基于主机的打印只能在 Windows 和 Macintosh 已经明确支持打印引擎的系统环境中使用,而不支持没有打印引擎的 Windows 、 Macintosh 、 Linux, Unix, and OS/2 等。

D 、 要求打印机和计算机直接相连,不适合网络打印作业,不支持网络服务器、共享器、磁带设备以及干扰通信设备的连接。

(转)学习打印机,了解打印命令 .相关推荐

  1. 计算机命令无法到达打印机,Win7打印机发送打印命令后不打印自动消失怎么办...

    ,打印命令不会再消失了; 注意事项:本方法只针对发送打印命令. 添加即可,没有执行打印却消失打印命令的情况, Win7打印机发送打印命令后不打印自动消失怎么办 当我们遇到给打印机发送打印命令,过30秒 ...

  2. 给打印机发送打印命令,打印机不反应win7

    当我们遇到给打印机发送打印命令,打印机不反应的状况,过30秒左右打印 命令会突然消失,我们先不要着急,这是因为打印机打印时需要调用 Windos目录下的一个临时文件夹Temp暂时存储,而这个文件夹已丢 ...

  3. 东芝 B-EV4 打印机 串口打印命令

    最近在做项目时候使用了东芝的B-EV4打印机,在打印Excel时候由于字体太小,导致打印非常模糊.只能通过串口名称发送打印指令进行打印.在做项目的时候查了很多关于B-EV4打印机的资料,和打印命令.资 ...

  4. 发送打印命令后打印机没反应,重启打印机之后才能打印

    电脑 USB 端口供电不足.当电脑长时间不向打印机发送打印作业,如果电脑端口此时供电无法达到唤醒打印机的打印电压,那么发送打印命令后打印机将没有反应.重新启动打印机,产生的瞬间电压达到极值,唤醒了打印 ...

  5. 打印时总跟出一页计算机主的纸,打印机只打印一页却重复不停打印的原因之一和解决方法...

    打印机只打印一页却重复不停打印的原因之一和解决方法 腾讯视频/爱奇艺/优酷/外卖 充值4折起 打印机和电脑配套使用时,会出现各种各样问题,就比如有时候设定只打印一页纸,打印机却重复在打印,今天小编以w ...

  6. c#endread怎么打印出来_C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解...

    本文主要向大家介绍了C#编程直接发送打印机命令到打印机及ZPL常用的打印命令详解,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. using System; using System.Co ...

  7. linux 管理部门打印,Linux打印机相关的命令-打印管理_Linux常用命令大全

    reject命令_Linux reject命令使用详解:指示打印系统拒绝发往指定目标打印机的打印任务 reject命令属于CUPS套件,用于指示打印系统拒绝发往指定目标打印机的打印任务.语法:reje ...

  8. 计算机上发出打印命令,从计算机上发送打印命令后打印机不打印怎么办

    Windows系统中发送打印命令后,打印机不打印,同时系统也没有错误信息,如何处理? 一. 现象描述 从计算机上发送打印命令后,打印机不打印,也没有出错信息提示. 二. 原因分析: 1. 打印机没有被 ...

  9. linux禁用打印切换服务命令行,linux下启用或禁用打印机的打印操作

    启用或禁用打印机的打印操作 1.enable 和 disable 命令 enable 和 disable 命令控制打印机打印还是停止打印打印队列中的请求.当您禁用打印机时,打印机将停止打印队列中的请求 ...

  10. oracle连接打印机,使用 LP 打印命令设置网络连接的打印机

    使用 LP 打印命令设置网络连接的打印机 网络连接的打印机是直接连接到网络的硬件设备.可以从打印服务器访问此打印机,而不必通过电缆以物理方式将打印机连接到打印服务器.网络连接的打印机具有其自己的系统名 ...

最新文章

  1. shell之sed 记录
  2. [原]ubuntu14.04 网卡逻辑修改没有文件/etc/udev/rules.d/70-persistent-net.rules
  3. 第一阶段:Java基础之OOP
  4. QT 5 安装 vs2017 后,出现找不到 rc.exe 问题
  5. webclinet downstring 搜狐 为什么是个?号
  6. python中运算的英文_[lemon]Python中的运算符,LemonPython
  7. [Todo] 乐观悲观锁,自旋互斥锁等等
  8. rdlc报表的制作步骤
  9. 感觉csdn论坛不是很好用,感觉……
  10. JSON对象中的函数调用,JSON格式的字符串对应的函数调用方法
  11. 将Grub2安装到其他硬盘分区
  12. JavaWeb开发——JSP技术
  13. 在我的世界修改服务器吗 名字,我的世界怎么改名字
  14. 主动降噪ANC 耳机的传参设计
  15. html设置为壁纸win10,Win10让桌面壁纸自动换的设置方法(图文教程)
  16. 英语单词速记(一直更新中......)
  17. python识别图片背景中数字_用python识别一张数字图片
  18. tieredImageNet 数据集介绍
  19. 恢复桌面计算机图标不见了怎么办,桌面的图标不见了怎么恢复,桌面图标不见了怎么办...
  20. 滚动轴承特征频率计算推导过程

热门文章

  1. python基础(二十三):面向对象编程精髓演练(选课系统)、封装
  2. 中国这10家慕课网站,您需要知道
  3. 论文笔记 Digging into self-supervised monocular depth estimation
  4. 软件项目验收需要的文档
  5. Python(关于运算符的运用的作业题)
  6. 今日学习在线编程题:小码哥的手下
  7. 墨刀未能成功读取服务器,墨刀体验小感
  8. navigator 常用API的使用及其使用场景
  9. 三点估算法评估开发工作量
  10. 仅用10行Python代码,便可以坐拥后宫3000