分享epson打印控制命令(ESC/POS)供参考

IDWB 2004-02-16 10:22:40
打印控制命令

5.1.打印控制命令

5.1.1 概述

BS-210BM 提供了ESC/POS命令集。下面将对每个命令进行说明。每个命令的说明包括格式和解释两部分。格式部分提供了命令的ASCII码、十进制码和十六进码三种格式,解释部分描述命令的功能。三种命令的格式是等价的,用户可按照需要选择任一种。

5.1.2 各个命令的描述格式如下:

打印命令                   功能
格式:  ASCII: 以标准ASCII字符序列表示
    十进制: 以十进制数字序列表示
   十六进制: 以十六进制数字序列表示
说明:该命令功能和使用说明。

5.1.3 命令说明

HT                    水平制表
格式:  ASCII: HT
    十进制: 09
   十六进制: 09
说明:
打印位置进行到下一水平制表位置。
如果当前打印位置超过了最后一个水平制表位置,则HT命令不被执行。
水平制表位置由 ESC D命令设置。
LF                   打印并换行
格式:  ASCII: LF
    十进制: 10
   十六进制: 0A
说明:
打印存放在行编辑缓存中的一行数据并按当前设定的行距向前走纸一行。ESC2,ESC3指令可设定行距的长短。
如果行编辑缓存空,则只按当前设定的行距向前走纸一行。

CR                    打印回车
格式:  ASCII: CR
    十进制: 13
   十六进制: 0D
说明:
当打印在行编辑缓存中的一行数据之后,不进行走纸操作。

ESC SP              设置字符右间距
格式:  ASCII: ESC  SP n
    十进制: 27  32 n
   十六进制: 1B  20 n
说明:
以半点为设定单位(1/144英寸),设置字符右边间距为n个半点距。
默认值n=0。

ESC !              设置字符打印方式
格式:  ASCII: ESC  ! n
    十进制: 27  33 n
   十六进制: 1B  21 n
说明:
0≤n≤255
ESC ! n是综合性的字符打印方式设置命令,用于选择打印字符的大小和下划线。
打印参数n的每位定义为:
位 功能 值
0 1
0 字模选择 7×9 5×7
1 无定义
2 无定义
3 无定义
4 倍 高 取消 设定
5 倍 宽 取消 设定
6 无定义
7 下划线 取消 设定
默认值n=0,

ESC %           允许/禁止用户自定义字符
格式:  ASCII: ESC  %  n
    十进制: 27  37 n
   十六进制: 1B  25 n
说明:
参数n为一个字节,只有最低位有效。
当n=<*******1>B时,选择用户自定义字符集;
当n=<*******0>B时,选择内部字符集。
0≤n≤255,默认值n=0。
ESC &               设置用户自定义字符
格式: ASCII: ESC  &  y  n  m  x  d1  d2……db
   十进制: 27  38  y  n  m  x  d1  d2……db
  十六进制: 1B  26  y  n  m  x  d1  d2……db
说明:
该命令用于自定义字符。各参数为:
y:字符的纵向字节数。这里取 y=1,2。
n:自定义字符集的起始ASCII码,n≥32。
m:自定义字符集的终止ASCII码,m≤127。自定义字符个数为m-n+1,最多可定义96个字符。
当只有一个自定义字符时,取m=n。
a:自定义字符的水平方向的点数。
d1 d2……db:自定义字符的数据。每个字符 y×x个字节,m-n+1个自定义字符共有:
(y×x)×(m-n+1)个字节。

每个自定义字符数据的格式:

d1 d3 … d(y×x)×(m-n+1)-1
d2 d4 … d(y×x)×(m-n+1)

ESC *                  设置图形点阵
格式:  ASCII: ESC  *  m  n1  n2  D1,D2 … Dk
     十进制: 27 42 m  n1  n2  D1,D2 … Dk
    十六进制: 1B 2A m  n1  n2  D1,D2 … Dk
说明:
该命令用来设置点阵图形模式(m)和横向图形点阵。
m = 0,1: 表示打印密度。
0≤n1≤255,0≤n2≤1,0≤Dk≤255,k= n1+ n2×256。
n1,n2为两位十六进制数,n1这低字节,n2这高字节,k= n1+ n2×256,表示该命令下载的要打印图形的横向点数,该值应小于打印机的最大行宽打印点数。如果下送的点图数据超出一行的最大行宽打印点数时,超出的部分被忽略。

m 垂直方向点数 点密度 最大点数 图形打印模式
0 8 单密度 210 相邻点打印
1 8 双密度 420 相邻点不打印

Dk 定义为:

ESC 2              设定1/6英寸换行量
格式:  ASCII: ESC  2
    十进制: 27  50
   十六进制: 1B  32
说明:
此指令将打印机的换行量设定为1/6英寸。
ESC 3            设定 n/144英寸换行量
格式:  ASCII: ESC  3  n
    十进制: 27  51  n
   十六进制: 1B  33  n
说明:
此指令将打印机的换行量设定为 n/144英寸。
n=1 - 255。

ESC 〈                打印头归位
格式:  ASCII: ESC 〈
    十进制: 27  60
   十六进制: 1B  3C
说明:
执行该指令后,打针头会回到原位(home的位置)。

ESC @                初始化打印机
格式:  ASCII: ESC  @
    十进制: 27  64
   十六进制: 1B  40
说明:
该命令初始化打印机:使打印机恢复到最初的联机状态,清除以前留下的程序。

ESC D               设置水平制表值
格式:  ASCII: ESC  D  Nk NUL
    十进制: 27 68 Nk 0
   十六进制: 1B   44 Nk 00
说明:
设置水平制表位置为:N1,N2,…,Nk。
其中: 0≤Nk≤42,0≤k≤32。k为总共定义的水平跳格数,不超过32个。
Nk定义为以打印起始位置开始计算的列数,实际位置为(k-1)×字符宽度(10)。
Nk的默认值为:0,1,2,3,… 31。
NUL加在最后,表示该命令结束。

ESC D NULL        消除所有的水平制表位置
格式:  ASCII: ESC  D  NUL
    十进制: 27 68 0
   十六进制: 1B  44 0
说明:
ESC D NUL命令消除所有的水平制表位置,之后再执行的HT命令将无效。

ESC J              执行n/144英寸走纸
格式:  ASCII: ESC J  n
    十进制: 27 74 n
   十六进制: 1B  4A n
说明:
进纸n/144英寸,n值应为0到255之间的任意值。
若当时有打印内容则在打印完成后执行走纸。

ESC R               选择国际字符集
格式:  ASCII: ESC  R  n
    十进制: 27 82 n
   十六进制: 1B  52 n
说明:
ESC R用于选择11个不同国家的不同ASCII字符集。
n=0~10。默认值为0,选择U.S.A方式。

ESC U              设置/取消单向打印
格式:  ASCII: ESC  U  n
    十进制: 27 85 n
   十六进制: 1B  55 n
说明:
设置/取消单向打印。n=0~255,仅最低位有效。
当n=<×××××××1>B时,在字符方式下设置为准双向打印,在图形方式下设置为单向打印。
当n=<×××××××0>B时,设置双向打印。
默认值n=0。


l a 用来选择设置切/撕纸位置或起始打印位置的偏移量。
a 功能
1 设置起始打印位置相对于黑标检测位置的偏移量
2 设置切/撕纸位置相对于黑标检测位置的偏移量
l m=0或48,选择偏移量为前进纸方向计算;
l nL,nH设置的偏移量对应实际距离为(nL+nHx256)×0.176mm
l 只有执行此命令后GS FF 和 GS V命令有关黑标定位操作方有效;
l 设置起始打印位置偏移量(a=1)在执行GS FF 命令时有效;
l 设置切/撕纸位置偏移量(a=2)在执行GS V m 命令时有效;
l 默认值为nL=nH=0,即黑标检测开关检测到黑标时,当前票面上对应打印头的位置为设定的起始打印位置,当前票面上对应切/撕纸口的位置为设定的切/撕纸位置。
l 关于切/撕纸位置偏移量和起始打印位置偏移量的计算说明
1、 切/撕纸位置到黑标印刷位置的距离L与打印机的固有机械值L0相同,而且切/撕纸位置到起始打印位置的距离Q与打印机构固定的机械值Q0相同时,即用GS( F命令所设置的偏移量均为0。
2、 当黑标印刷位置到切/纸位置的距离L小于打印的机械值L0时,GS( F命令的切/撕纸位置偏移量计算为:
切/撕纸位置偏移量=(L0—L)/0.176(点数)
3、 当黑标印刷位置到切/撕纸位置的距离L大于打印机的机械值L0时,GS( F命令的切 /撕纸位置偏移量计算为:
切/撕纸位置偏移量=(L0+相邻两黑标间的距离—L)/0.176(点数)。
注意:在设置切/撕纸位置偏移量时,GS 〈 F命令的参数a应为2。
4、 当切/撕纸位置偏移量不为零或每单的起始打印位置到切/撕纸位置的距离Q大于打印机的机械值Q0)时,GS( F命令的切/撕纸位置偏移量计算为:
起始打印位置偏移量=(Q—Q0)/0.176 +切/撕纸位置偏移量。
注意:在设置切/撕纸位置偏移量时,GS 〈 F命令的参数a应为1。
5、 打印结构M—U110(051)的固有机械值
L0=39mm, Q0=11mm,
当打印机构安装在机壳内,使得撕纸位置和打印起始位置的固有机械值发生改变时
L0=39+△L Q0=11+△L
6、 △L的测量方法如下:
1) 先将空白打印纸装入打印机械,撕去出纸口上多余的打印纸
2) 给打印机发20个字符“E”,打印在打印纸上
3) 让打印机发走出足够长度,测量纸端到打印字符“EEEEEEEEEEEEEEEEEEEE”的上沿距离,该值减去11mm,即为△L。切/撕纸位置起始打印位置
...全文
1534 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Guanfj 2004-04-14
  • 打赏
  • 举报
回复
好东西啊,值得收藏啊,我已经收藏啦,哈哈,谢谢楼主,向你学习

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧