由于公司业务的需要,要用android客户端控制pos机打印票据,不单只是中文的,而且还要包括2维码的打印的!经过两天的努力!终究弄定了!!!!我真是!
首先,先奉上ESC/POS指令集。
EPSON打印控制指令集
打印命令 功能
格式: ASCII: 以标准ASCII字符序列表示
10进制: 以10进制数字序列表示
106进制: 以106进制数字序列表示
说明:该命令功能和使用说明。
HT 水平制表
格式: ASCII: HT
10进制: 09
106进制: 09
说明:
打印位置进行到下1水平制表位置。
如果当前打印位置超过了最后1个水平制表位置,则HT命令不被履行。
水平制表位置由 ESC D命令设置。
LF 打印并换行
格式: ASCII: LF
10进制: 10
106进制: 0A
说明:
打印寄存在行编辑缓存中的1行数据并按当前设定的行距向前走纸1行。ESC2,ESC3指令可设定行距的长短。
如果行编辑缓存空,则只按当前设定的行距向前走纸1行。
CR 打印回车
格式: ASCII: CR
10进制: 13
106进制: 0D
说明:
当打印在行编辑缓存中的1行数据以后,不进行走纸操作。
DLE EOT n 实时状态传送
格式: ASCII: DLE EOT n
10进制: 16 04 n
106进制: 10 04
说明:
1 ≤ n ≤ 4
传送以实时的方式,n代表被选择的打印机状态,基于以下参数:
n = 1: 打印机状态
n = 2: 脱机状态
n = 3: 毛病状态
n = 4: 纸检测器状态
返回的字节每位设置以下:
n = 1: 打印机状态
n = 2: 脱机状态
n = 3: 毛病状态
n = 4: 纸检测器状态
DLE ENQ n 对打印机的实时要求
格式: ASCII: DLE ENQ n
10进制: 16 05 n
106进制: 10 5
说明:
n = 0, n = 2
打印机对主机要求作出反应,n值定义以下:
n = 0: 恢复到联机状态
n = 2: 清除接收和打印缓冲区,并恢复毛病.
ESC SP n 设置字符右间距
格式: ASCII: ESC SP n
10进制: 27 32 n
106进制: 1B 20 n
说明:
以半点为设订单位(1/144英寸),设置字符右侧间距为n个半点距。
默许值n=0。
ESC ! n 设置字符打印方式
格式: ASCII: ESC ! n
10进制: 27 33 n
106进制: 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 % n 允许/制止用户自定义字符
格式: ASCII: ESC % n
10进制: 27 37 n
106进制: 1B 25 n
说明:
参数n为1个字节,只有最低位有效。
当n=<*******1>B时,选择用户自定义字符集;
当n=<*******0>B时,选择内部字符集。
0≤n≤255,默许值n=0。
ESC & 设置用户自定义字符
格式: ASCII: ESC & y n m x d1 d2……db
10进制: 27 38 y n m x d1 d2……db
106进制: 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个字符。
当只有1个自定义字符时,取m=n。
a:自定义字符的水平方向的点数。
d1 d2……db:自定义字符的数据。每一个字符 y×x个字节,m-n+1个自定义字符共有:
(y×x)×(m-n+1)个字节。
每一个自定义字符数据的格式:
d1 d3 … d(y×x)×(m-n+1)⑴
d2 d4 … d(y×x)×(m-n+1)
样例以下:
发送的命令以下:
ESC & y c1 c2 X p1 p2 p3 d4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14
Code 1B 26 02 20 20 07 1F 80 20 00 44 00 80 00 44 00 20 00 1F 80
ESC * 设置图形点阵
格式: ASCII: ESC * m n1 n2 D1,D2 … Dk
10进制: 27 42 m n1 n2 D1,D2 … Dk
106进制: 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为两位106进制数,n1这低字节,n2这高字节,k= n1+ n2×256,表示该命令下载的要打印图形的横向点数,该值应小于打印机的最大行宽打印点数。如果下送的点图数据超越1行的最大行宽打印点数时,超越的部份被疏忽。
m 垂直方向点数 点密度 最大点数 图形打印模式
0 8 单密度 210 相邻点打印
1 8 双密度 420 相邻点不打印
Dk 定义为:
ESC - n 设置/取消下划线模式
格式: ASCII: ESC - n
10进制: 27 45 n
106进制: 1B 2D n
说明:
n = 0, 1, 48, 49
n = 0 or 48,取消下划线模式。
n = 1 or 49, 设置下划线模式。
ESC 2 设定1/6英寸换行量
格式: ASCII: ESC 2
10进制: 27 50
106进制: 1B 32
说明:
此指令将打印机的换行量设定为1/6英寸。
ESC 3 n 设定 n/144英寸换行量
格式: ASCII: ESC 3 n
10进制: 27 51 n
106进制: 1B 33 n
说明:
此指令将打印机的换行量设定为 n/144英寸。
n=1 - 255。
ESC 〈 打印头归位
格式: ASCII: ESC 〈
10进制: 27 60
106进制: 1B 3C
说明:
履行该指令后,打针头会回到原位(home的位置)。
ESC = n 装备设置/取消
格式: ASCII: ESC = n
10进制: 27 61 n
106进制: 1B 3D n
说明:
1 ≤ n ≤ 3
默许 n = 1
位 功能 值
0 1
0 打印机选择 取消 设定
1 顾显选择 取消 设定
2 无定义
3 无定义
4 无定义
5 无定义
6 无定义
7 无定义
ESC ? n 取消用户自定义字符
格式: ASCII: ESC ? n
10进制: 27 63 n
106进制: 1B 3F n
说明:
32 ≤ n ≤ 126
ESC @ 初始化打印机
格式: ASCII: ESC @
10进制: 27 64
106进制: 1B 40
说明:
该命令初始化打印机:使打印机恢复到最初的联机状态,清除之前留下的程序。
ESC D NULL 消除所有的水平制表位置
格式: ASCII: ESC D NULL
10进制: 27 68 0
106进制: 1B 44 0
说明:
ESC D NUL命令消除所有的水平制表位置,以后再履行的HT命令将无效。
ESC E n 设置/取消侧重模式
格式: ASCII: ESC E NUL
10进制: 27 69 0
106进制: 1B 45 0
说明:
0 ≤ n ≤ 255
当n的LSB位是0,取消侧重模式。
当n的LSB位是1,设置侧重模式。
ESC G n 设置/取消堆叠模式
格式: ASCII: ESC G NUL
10进制: 27 71 0
106进制: 1B 47 0
说明:
0 ≤ n ≤ 255
当n的LSB位是0,取消堆叠模式。
当n的LSB位是1,设置堆叠模式。
ESC J n 履行n/144英寸走纸
格式: ASCII: ESC J n
10进制: 27 74 n
106进制: 1B 4A n
说明:
进纸n/144英寸,n值应为0到255之间的任意值。
若当时有打印内容则在打印完成后履行走纸。
ESC K n 打印并反向走纸
格式: ASCII: ESC K n
10进制: 27 75 n
106进制: 1B 4B n
说明:
0 ≤ n ≤ 48
打印缓冲区里的内容,并反方向走纸n/144英寸(n X 0.176 mm)。
ESC R n 选择国际字符集
格式: ASCII: ESC R n
10进制: 27 82 n
106进制: 1B 52 n
说明:
ESC R用于选择11个不同国家的不同ASCII字符集。
n=0~10。默许值为0,选择U.S.A方式。
ESC U n 设置/取消单向打印
格式: ASCII: ESC U n
10进制: 27 85 n
106进制: 1B 55 n
说明:
设置/取消单向打印。n=0~255,仅最低位有效。
当n=<×××××××1>B时,在字符方式下设置为准双向打印,在图形方式下设置为单向打印。
当n=<×××××××0>B时,设置双向打印。
默许值n=0。
ESC a n 选择对齐模式
格式: ASCII: ESC a n
10进制: 27 97 n
106进制: 1B 61 n
说明:
0 ≤n ≤2, 48 ≤n ≤50
n选择对齐模式,默许值是0。
n 对齐模式
0,48 左对齐
1,49 中对齐
2,50 右对齐
ESC c 3 n 输出纸尽传感器
格式: ASCII: ESC c 3 n
10进制: 27 99 51 n
106进制: 1B 63 33 n
说明:
0 ≤ n ≤ 255
n的定义见下表:
位 功能 值
0 1
0 末端传感器 取消 设定
1 末端传感器 取消 设定
2 纸尽检测器 取消 设定
3 纸尽检测器 取消 设定
4 无定义
5 无定义
6 无定义
7 无定义
ESC c 4 n 设定缺纸时停止打印
格式: ASCII: ESC c 4 n
10进制: 27 99 52 n
106进制: 1B 63 34 n
说明:
设置/取消纸检测器检测到缺纸时停止打印。
N=0~255,仅最低位有效。
当n=<*******1>B时,纸检测器检测到缺纸时停止打印。
当n=<*******0>B时,纸检测器检测到缺纸时不停止打印,以便用户可以将最后1张单据打印至页底。
默许值n=1。
ESC c 5 n 允许/制止走纸按键
格式: ASCII: ESC c 3 n
10进制: 27 99 33 n
106进制: 1B 63 35 n
说明:
当n=<*******1>B时,制止纸按键。
当n=<*******0>B时,允许纸按键(默许值)。
ESC d n 打印并进纸n字符行
格式: ASCII: ESC d n
10进制: 27 100 n
106进制: 1B 64 n
说明:
打印行缓存里的数据并向前走纸n行。
n=0~255。
ESC e n 打印并反向进纸n字符行
格式: ASCII: ESC e n
10进制: 27 101 n
106进制: 1B 65 n
说明:
打印行缓存里的数据并向前走纸n行。
0 ≤ n ≤ 2。
ESC p 产生钱箱驱动脉冲
格式: ASCII: ESC p m n1 n2
10进制: 27 112 m n1 n2
106进制: 1B 70 m n1 n2
说明:
产生钱箱驱动脉冲。
m=0,1,48,49 0≤n1≤n2≤255
驱动脉冲情势为:
解释:
打开钱箱脉冲时间为n1×2毫秒。
关闭钱箱脉冲时间为n2×2毫秒。
ESC r n 选择打印色彩
格式: ASCII: ESC r n
10进制: 27 114 n
106进制: 1B 72 n
说明:
n = 0,48,黑色打印
n = 1,49,红色打印
默许n = 0。
ESC t n 选择字符集
格式: ASCII: ESC t n
10进制: 27 116 n
106进制: 1B 74 n
说明:
选择中文方式下的ASCII字符集。
0: 选择7×9字符集(默许值)。
1: 选择7×7字符集。
ESC { n 设置/取消倒向打印模式
格式: ASCII: ESC { n
10进制: 27 123 n
106进制: 1B 7B n
说明:
0 ≤ n ≤ 255
当n的LSB位是0,取消倒向打印模式。
当n的LSB位是1,设置倒向打印模式。
默许n = 0。
FS ! 汉字综合选择
格式: ASCII: FS ! n
10进制: 28 33 n
106进制: 1C 21 n
说明:
n的各位的定义以下:
位 0 1
0 无定义
1 无定义
2 宽正常 汉字倍高
3 高度正常 汉字倍高
4 无定义
5 无定义
6 无定义
7 无下划线 汉字下划线
FS & 进入汉字打印方式
格式: ASCII: FS &
10进制: 28 38
106进制: 1C 26
说明:
打印机接收到该命令后,结束本行打印,从下1行开始转为汉字打印方式。
在汉字打印方式时,打印机接收的代码为2字节的标准机内码(均为大于9FH的码),根据该代码寻觅打印机的硬汉字字模,打印国标15×16点阵的汉字。
打印机接收到单字节的ASCII码(20H-9FH)时,将打印出相应的5 ×7或7×7点阵字符。
FS ~ S 选择汉字打印速度
格式: ASCII: FS ~ S n
10进制: 28 126 83 n
106进制: 1C 7E 53 n
说明:
此功能设置汉字打印模式时的打印速度,当n=1时为汉字高速打印,横向分辨率为144 DPI,纵向分辨率为72 DPI;
当n=0时为正常打印模式,横向分辨率为144 DPI,纵向分辨率为144 DPI
下一篇 设计模式之桥接模式