2024年2月11日发(作者:魏冰莹)
热敏打印机指令集
热
敏
打
印
机
指
令
集
1
热敏打印机指令集
目 录
字符说明:.......................................................................................................................................3
LF打印并走纸一行.........................................................................................................................3
ESC SP n设定字符右边间隔..............................................................................................3
ESC ! n选择打印模式..........................................................................................................4
ESC $ nL nH设置绝对打印位置.......................................................................................4
ESC * m nL nH d1……DK选择位图打印模式.............................................................5
ESC - n打开/关闭下划线模式..................................................................................................7
ESC 2设置标准行距命令............................................................................................................7
ESC 3 n设置行距命令............................................................................................................7
ESC @初始化打印机....................................................................................................................7
ESC E n打开/关闭加重模式.....................................................................................................8
ESC J n打印并走纸...................................................................................................................8
ESC V n打开/关闭顺时针旋转90°模式................................................................................8
ESC a n选择排列方式...............................................................................................................9
ESC d n打印并走纸n行..........................................................................................................9
ESC { n打开/关闭颠倒打印模式...........................................................................................9
ESC m半切纸(屏蔽).............................................................................................................10
ESC i全切纸(屏蔽).....................................................................................................................10
ESC j n退纸n点行.................................................................................................................10
ESC nL nH设置相对打印位置..........................................................................................11
ESC & y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)] 定义用户自定义西文字符......................11
ESC ? n删除用户自定义西文................................................................................................12
ESC % n选择/取消使用用户自定义字符..............................................................................13
ESC v纸状态返回......................................................................................................................13
ESC p m n1 n2开钱箱.......................................................................................................13
GS FF走纸到黑标位置..............................................................................................................14
GS
! n选择字符大小.............................................................................................................14
GS B n打开/关闭 黑白相反打印模式...................................................................................15
GS L nL nH选择左边空白......................................................................................................15
GS T n设打印位置到打印行起始..........................................................................................16
①GS V m ②GS V m n选择切模式和切纸(屏蔽).............................................16
GS W nL nH设打印区域宽度.................................................................................................17
GS v 0 nL nH xL xH yL Yh d1……dk打印光栅位图.........................................................18
GS I n传送打印机ID..............................................................................................................19
GS r n返回状态...................................................................................................................20
GS * x y d1…d(x*y*8) 自定义下载位图............................................................................20
GS / m打印下载位图..............................................................................................................21
GS h n选择条码高度...............................................................................................................22
GS H n 选择可识别字符的打印位置.....................................................................................22
GS w n 选择条码宽度.............................................................................................................23
①GS k m d1…dk②GS k m dn打印条码...........................................................................23
FS ! n设置中文打印模式.......................................................................................................24
2
热敏打印机指令集
FS &设置中文字符模式.............................................................................................................24
FS - n打开/关闭下划线模式...................................................................................................25
FS .撤销中文模式................................................................................................................25
FS S n1 n2左边和右边的字符间隔...................................................................................25
FS W n打开/关闭字符四倍模式............................................................................................26
FS q n x y d1……dk下载位图到打印机..........................................................................26
FS p n打印下载位图...............................................................................................................27
FS V n旋转打印命令..............................................................................................................27
FS 2 c1 c2 d1…dk定义用户自定义中文字符..................................................................28
DLE EOT n返回实时状态......................................................................................................28
DLE ENQ n实时请求打印机..................................................................................................30
字符说明:
打印机采用的中文字符为GB2312简体汉字表,西文字符编码采用ASCII码。
字符大小:
字符
正常模式 倍高 倍宽 倍高倍宽
宽度*高度(mm)宽度*高度(mm)宽度*高度(mm)宽度*高度(mm)中文24*24 3*3 3*6 6*3 6*6
西文12*24 1.5*3 1.5*6 3*3 3*6
当字体被n倍放大时,宽度高度均为正常模式的n倍,最高可达7倍具体看GS ! n命令。
LF打印并走纸一行
名字 打印并走纸一行
格式 ASCII码 LF
十六进制
0A
十进制 10
描述 根据当前行的行间距打印打印缓冲区的数据并走纸一行。
无打印数据时只走纸1行
ESC SP n设定字符右边间隔
名称 设定字符右边间隔
格式 ASCII码 ESC SP n
十六进制 1B 20 n
十进制 27 32 n
范围 0≤n≤255
描述 设定字符右边的间隔,间隔为n*0.125mm(n*0.0049”)
当字宽加间隔不能放得下一行打印该行并将该字写在下一行
3
热敏打印机指令集
注释 1 字符的右间距是在双倍宽模式下时是正常间隔的两倍,当字符宽度被放大n倍时,右边间隔同样被横向放大n倍,即设定的右间隔跟字符宽度成正比
ESC ! n选择打印模式
名称 选择打印模式
格式 ASCII码 ESC ! n
十六进制 1B 21 n
十进制 27 33 n
范围 0≤n≤255
描述 使用n选择打印模式如下:
位 关/开 十六进十进制 功能
制
0 — — — 未定义
— — — 未定义
1 — — — 未定义
2 — — — 未定义
3 关 00 0 加重模式 不被选择
开 08 8 加重模式 被选择
4 关 00 0 双倍高模式 不被选择
开 10 16 双倍高模式 被选择
5 关 00 0 双倍宽模式 不被选择
开 20 32 双倍宽模式 被选择
6 — — — 未定义
7 关 00 0 下划线模式 不被选择
开 80 128 下划线模式 被选择
注释 1 当双倍高和双倍宽模式都被选择,打印四倍大小的字符。
2 下划线对所有字符有效,对命令设定的字符间距和空格符号均有效,但对顺时针90度旋转字体无效。
3 下划线的厚度可由FS – 选择,该命令设定的下划线厚度为一点行厚度
4 ESC E 能单独打开或关闭加重模式。
5 ESC - 能单独打开或关闭下划线模式。
6 GS !能单独选择字符大小。
ESC $ nL nH设置绝对打印位置
名称 设置绝对打印位置
格式 ASCII码
ESC $ nL nH
十六进制 1B 24 nL nH
十进制 27 36 nL nH
范围 0≤nL≤255 (最大为打印头宽度)
0≤nH≤255
描述 1 从行的开始到打印位置的距离是[(nL+nH*256)*0.125mm]
2 如果设定的区域超出了打印的有效区域则该命令被忽略。
4
热敏打印机指令集
.3 如果有设定左边空白,则打印位置为左边界+[(nL+nH*256)*0.125mm]
ESC * m nL nH d1……DK选择位图打印模式
名字 选择位图打印模式
格式 ASCII码 ESC * m nL nH d 1……dK
十六进制 1 B 2 A m nL nH d 1……dK
十进制 27 42 m nL nH d 1……dK
范围 m=0,1,32,33
0≤ nL ≤255
0≤ nH ≤3
0≤ d ≤255
描述选择位图模式使用 m
水平方向
M 模式
垂直方向
点数 点密度 点密度 数据个数
0 8点单精度 8 67.7dpi nl+nh*256
1 8点双精度 8 67.7dpi 203.2dpi nl+nh*256
32 24点单精度 24 203.2dpi 101.6dpi (nl+nh*256)*3
33 24点双精度 24 203.2dpi 203.2dip (nl+nh*256)*3
注释:
1 如果数据m超出范围,则后面的数据作为正常数据处理
2 nL和nH表示位图水平方向的点数,点数计算公式:nL+nH*256
3 如果位图数据输入超过打印的有效区域,超出的数据将丢失
4 d表示位图的数据。设置图形的相应位1表示打印或0表示不打印。
5 在单精度模式(m=0,32)下,每一个数据位打印两点,在双精度模式(m=1,33)下,每个打印机打印一点。
7 这个命令不受打印模式影响(加重,双击,下划线,特定大小,相反打印),除了颠倒打印模式。
8 该命令处理完图形后不进行打印要使用命令进行打印,而且图形的位置紧跟着打印数据所写到的位置进行填写。
8点位图图示:
5
热敏打印机指令集
24点位图图示
6
热敏打印机指令集
ESC - n打开/关闭下划线模式
名称 打开/关闭下划线模式
格式 ASCII码 ESC - n
十六进制 1B 2D n
十进制 27 45 n
范围 0≤n≤2 ,48≤n≤50
描述 打开或关闭下划线模式,根据n如下的值设置
N(十进制) 功能
0,48
1,49
2,50
关闭下划线模式
打开下划线模式(1点行厚度)
打开下划线模式(2点行厚度)
注释 1 打印机能够给所有字符加下划线(包括左右字符间距),但不对旋转字体加下划线。
2 n=0时关闭下划线,下划线厚度缺省值为1点行厚度。
3 指定的下划线厚度不随字符大小改变而改变。
4 下划线模式也能用FS !关闭和打开。
ESC 2设置标准行距命令
名称 设置标准行距命令
格式 ASCII码 ESC 2
十六进制 1B 32
十进制 27 50
描述 选择标准行距(包括字高)为3.75mm(30*0.125mm)。
3.75mm行距中:
字高3mm(24步*0.125mm)
空行0.75mm(6步*0.125mm)故一行高度为3.75mm
ESC 3 n设置行距命令
名称 设置行距命令
格式 ASCII码 ESC 3 n
十六进制 1B 33 n
十进制 27 51 n
范围 0≤n≤255
描述 设置行距(带一倍字高)为(n*0.125mm)
所设参数带字高度,如果设置n≤18H(一倍字符高度)则按打印不空行处理,n≥18H(一倍字符高度)时多出的步数作为空行步数
ESC @初始化打印机
名称 初始化打印机
格式 ASCII码 ESC @
十六进制 1B 40
7
热敏打印机指令集
十进制 27 64
描述 清除打印缓冲区的数据,清除各项命令设置(加重,双击,下划线,特定大小,相反打印等)。
不清除接收缓冲区
ESC E n打开/关闭加重模式
名称 打开/关闭加重模式
格式 ASCII码 ESC E n
十六进制 1B 45 n
十进制 27 69 n
范围 0≤n≤255
描述 打开/关闭加重模式
当字节n最低位是0时,加重模式被关闭
当字节n最低位是1时,加重模式被打开
仅n的最低位有效
ESC J n打印并走纸
名称 打印并走纸
格式 ASCII码 ESC J n
十六进制 1B 4A n
十进制 27 74 n
范围 0≤n≤255
描述 打印打印缓冲区的数据并走纸[n*0.125mm(0.0049″)]。
该命令只对本行有效,不改变ESC 2或ESC 3的设置。
所设参数带字高度,如果设置n≤18H(字符高度)则按打印不空行处理,n≥18H(字符高度)时多出的步数作为空行步数。
ESC V n打开/关闭顺时针旋转90°模式
名称 打开/关闭顺时针旋转90°模式
格式 ASCII码 ESC V n
十六进制 1B 56 n
十进制 27 86 n
范围 0≤n≤1,48≤n≤49
描述 打开关闭顺时针旋转90°模式
n的使用如下:
N(十进制) 功能
0,48
1,49
关闭90°顺时针旋转模式
打开90°顺时针旋转模式
注释 1该命令设置后在关闭前一直有效
2当下划线模式被打开,顺时针旋转90°字符中不加下划线
8
热敏打印机指令集
3在顺时针旋转90度模式中,那水平和垂直方向放大倍数关系反过来
ESC a n选择排列方式
名称 选择排列方式
格式 ASCII码 ESC a n
十六进制 1B 61 n
十进制 27 97 n
范围 0≤n≤2 48≤n≤50
描述 在指定位置中所有数据在一行成一直线 n选择排列方式如下
N(十进制)
0、48
1、49
2、50
排列方式
靠左排列
居中排列
靠右排列
注释 1 该命令在打印区域执行的排列方式
2设定该命令前打印缓冲区必须无打印数据
3 设定该命令后设定绝对打印则绝对打印无效数据按排列方式打印。设定了绝对打印再设排列方式,则排列方式无效数据按绝对打印位置打印。该命令与绝对打印关系:谁先设谁有效。注意绝对打印只是当前行有效,排列方式是设定后不改变则一直有效。
排列图例:
ESC d n打印并走纸n行
名称 打印并走纸n行
格式 ASCII码 ESC d n
十六进制 1B 64 n
十进制 27 100 n
范围 0≤n≤255
描述 打印打印缓冲区的数据并走纸n行(包括打印行)
该命令只在本行有效,不改变ESC 2或ESC 3。
ESC { n打开/关闭颠倒打印模式
名称 打开/关闭颠倒打印模式
格式 ASCII ESC { n
Hex 1B 7B n
十进制 27 123 n
9
热敏打印机指令集
范围 0≤n≤255
描述 打开/关闭颠倒模式
当n的最低位是0,颠倒打印模式关闭
当n的最低位是1,颠倒打印模式打开
仅n的最低位有效
设定该命令前打印缓冲区必须无打印数据
颠倒打印图例:
ESC m半切纸(屏蔽)
名称 半切纸
格式 ASCII码 ESC m
十六进制 1B 6D
十进制 27 109
描述 切纸操作,保留一点不切
切纸刀必须要有半切纸的功能,如果无半切功能则全切处理
ESC i全切纸(屏蔽)
名称 全切纸
格式 ASCII码 ESC i
十六进制 1B 69
十进制 27 105
描述 切纸操作,把纸全切断
ESC j n退纸n点行
名称 退纸n点行
格式 ASCII ESC j n
十六进制 1B 6A n
十进制 27 106 n
范围 0≤n≤255
描述 反向走纸n点行
注释 1 执行该命令前必须保证打印缓冲区内没有待打印数据
10
热敏打印机指令集
2 当执行该命令退纸n点行后下一个数据命令是LF打印并走纸一行命令时,打印机会向前走纸n点行
3 该命令只执行走纸,不进行打印。
失效 n=0
ESC nL nH设置相对打印位置
名称 设置相对打印位置
格式 ASCII ESC nL nH
Hex 1B 5C nL nH
十进制 27 92 nL nH
范围 0≤nL≤255
0≤nH≤255
描述 根据当前水平或垂直方向设置打印起始位置
该命令设置的位置与当前位置距离为[(nL+nH*256 )*0.125mm]
注释 1设置超过打印区域则失效。
2 设置方向为水平方向当前打印位置右边,距离为[(nL+nH*256 )*0.125mm]。
ESC & y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)] 定义用户自定义西文字符
名称 定义用户自定义西文字符
格式 ASCII ESC & y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)]
Hex 1B 26 y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)]
十进制 27 38 y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)]
范围 y=3
20≤c1≤c2≤4F
X=12
0≤d1…d(y*xk) ≤255
描述 定义用户自定义字符
Y表示垂直方向字节数
c1 表示定义字符的起始编码,和c2表示最终编码
x表示水平方向的点数(也是字宽,恒为12)
注释 1可允许字符范围从ASCII码<20>H到<4F>H(包括4FH)(48个字符)
2 定义西文字符前要用ESC % n命令打开定义西文设置,设置被打开则一直有效直到被取消。
3它能用连续字符编码重复定义字符,可以一次定义多个字符,当希望得到只有一个字,使用C1=C2。
例如:定义编码为20H的字符为字符B:
发送(十六进制)代码:1B(ESC) 26(&) 03(y) 20(c1) 20(c2) 0C(X) 04(d1) 00 08 07 FF F8
07 FF F8 04 08 08 04 08 08 04 08 08 04 08 08 06 18 08 03 F4 18 01 E7 F0 00 01 E0 00 00
00(dk)
打印时使用代码(十六进制):1B 25 01(选择使用自定义西文 该选项选择后取消前一直有效,不需要重复设置) 20(自定义字符的编码)
连续定义编码20H到22H为字符A:
11
热敏打印机指令集
发送(十六进制)代码:1B(ESC) 26(&) 03(y) 20(c1) 22(c2) 0C(x1) 00(d1) 00 08 00 00 18 00
01 F8 00 3E 08 01 C2 00 07 02 00 07 E2 00 00 FE 00 00 1F C8 00 01 F8 00 00 38 00 00 08(dk)
0C(x2) 00(d1) 00 08 00 00 18 00 01 F8 00 3E 08 01 C2 00 07 02 00 07 E2 00 00 FE 00 00 1F C8
00 01 F8 00 00 38 00 00 08(dk) 0C(x3) 00(d1) 00 08 00 00 18 00 01 F8 00 3E 08 01 C2 00 07 02
00 07 E2 00 00 FE 00 00 1F C8 00 01 F8 00 00 38 00 00 08(dk)
打印时使用代码(十六进制):1B 25 01(选择使用自定义西文 该选项选择后取消前一直有效,不需要重复设置) 20 21 22(20H~22H字符编码已自定义可直接数据编码使用)
4 用户定义字符为12点宽24点高共36个字节
5 统一设置数据d的1为要打印的点,0为不打印
6 用户不能同时定义字符和下载位图,当该命令被执行,则下载位图被清。
7 用户定义字符有以下情况时被清:
①执行ESC @
②执行自定义下载位图
③断电或重启
8 打印定义西文字符要先用ESC % n命令选择使用自定义西文字符,再写要打印的西文编码。要打印ASCII码原来的西文字符则用ESC % n命令取消使用自定义西文字符,再写要打印的ASCII编码。
9 当同一个字符编码被重复定义时,新的字符数据会取代原来的字符数据,打印的字符为新字符。
10 自定义数据排列如下:
ESC ? n删除用户自定义西文
名称 删除用户自定义西文
格式 ASCII ESC ? n
Hex 1B 3F n
十进制 27 63 n
12
热敏打印机指令集
范围 20H≤n≤4FH
描述 删除用于自定义字符
注释 1该命令通过n删除自定义西文编码,删除用户自定义西文后,将打印内部原来的字符。
2如果没有用户自定义西文字符,那打印机不处理该命令。
ESC % n选择/取消使用用户自定义字符
名称 选择/取消使用用户自定义字符
格式 ASCII ESC % n
Hex 1B 25 n
十进制 27 37 n
范围 0≤n≤255
描述 选择/取消使用用于自定义字符
1 当n的最低位为0,用户自定义字符设置被取消。
当n的最低位为1,用户自定义字符设置被选择。
2当用户自定义字符设置被删除,建立的字符设置自动被选择。
3 n 仅最低位有效。
4 该命令打开后一直使用自定义西文字符,直到该命令取消使用。
5 选择自定义西文字符后没有定义的字符会打印打印机内部原来的字符。
ESC v纸状态返回
名称 纸状态返回
格式 ASCII码 ESC v
十六进制 1B 76
十进制 27 118
描述 查询纸状态
执行该命令打印机会查询当前纸尽传感器状态,有纸返回00H,无纸返回04H.
ESC p m n1 n2开钱箱
名称 开钱箱命令
格式 ASCII ESC p m n1 n2
Hex 1B 70 m n1 n2
十进制 27 112 m n1 n2
范围 0≤m≤255
0≤n1≤255
0≤n2≤255
描述 开钱箱
注释 1 m n1 n2可以为随意的值
2在执行开锁命令操作期间不能重复发送开钱箱命令,开钱箱期间重复发送的开钱箱命令被屏蔽不执行。
13
热敏打印机指令集
3开钱箱时间固定为0.3秒。
4 请保证钱箱线路有链接
GS FF走纸到黑标位置
名称 走纸到黑标位置
格式 ASCII码 GS FF
十六进制 1D 0C
十进制 29 12
注释 1 这个命令仅在有黑标感应器时有效
2 走纸到黑标位置作为打印起始位置
4 执行该命令前打印机必须正在走纸
GS ! n选择字符大小
名称 选择字符大小
格式 ASCII GS ! n
Hex 1D 21 n
十进制 29 33 n
范围 0≤n≤255
(1≤垂直倍数≤8,1≤水平倍数≤8)
描述 选择字符高度使用位0到2和选择字符宽度使用位4到7,如下:
位
0
1
2
3
4
5
6
7
字符宽度选择。见表格1
关/开 十六进制 十进制
字符高度选择。见表格2
功能
14
热敏打印机指令集
表1 表2
字符宽度选择 字符高度选择
十六进制 十进制宽度
十六进制 十进制宽度
00 0 1(正常)
10 16 2(双倍宽)20 32 3
30 48 4
40 64 5
50 80 6
60 96 7
70 112 8
00 0 1(正常)
01 1 2(双倍高)
02 2 3
03 3 4
04 4 5
05 5 6
06 6 7
07 7 8
注释:
1 该命令对所有字符有效。
2 假如n超出规定的范围,该命令忽略
3 当顺时针旋转90度模式时,那水平和垂直方向关系反过来
4 如果在一行里有不同倍数高度的字体,则所有字符在底线成一直线排列。
5 ESC !命令能另外打开和关闭双倍宽和双倍高模式,但是,最后的命令设置才有效。
GS B n打开/关闭 黑白相反打印模式
名称 打开/关闭 黑白相反打印模式
格式 ASCII码 GS B n
十六进制 1D 42 n
十进制 29 66 n
范围 0≤n≤255
描述 打开/关闭黑白相反打印模式
当n的最后一位是0,黑白相反模式被关闭
当n的最后一位是1,黑白相反模式被打开
注释 1 仅n的最后一位有效。
3 该命令对命令设定的字符间隔和空格也有效
4 该命令不影响位图,用户定义位图,条代码。
5 该命令对行间间距无效。
6 黑白相反命令模式比下划线模式有优先权,如果下划线模式一直被选择,当黑白相反命令模式被选择将失去下划线(但下划线模式不会被取消)
GS L nL nH选择左边空白
名称 选择左边空白
格式 ASCII码 GS L nL nH
十六进制 1D 4C nL nH
十进制 29 76 nL nH
范围 0≤nL≤255
0≤nH≤255
描述 使用nL和nH命令设置左边空白
15
热敏打印机指令集
左边空白设定为[(nl+nh*256)*0.125mm]
注释 1 设定该命令前打印缓冲区必须无打印数据。
4 如果设置超过能打印区域,则设定左边界为打印区域,当有数据来时则靠右边腾出一个字宽+字间距写下一个字符
左边界图示:
GS T n设打印位置到打印行起始
名称 设打印位置到打印行起始
格式 ASCII码 GS T n
十六进制 1D 54 n
十进制 29 84 n
范围 n=0,1,48,49
描述 设定打印位置到打印行起始位置
n 指定数据处理在打印缓冲区
n
0,48
1,49
打印位置
设打印位置到打印行起始位置后删除打印缓冲区所有数据
设打印位置到打印行起始位置后打印打印缓冲区所有数据
①GS V m ②GS V m n选择切模式和切纸(屏蔽)
名称 选择切模式和切纸
格式 ASCII码 GS V m
十六进制 1D 56 m
十进制 29 86 m
ASCII码 GS V m n
十六进制 1D 56 m n
十进制 29 86 m n
16
热敏打印机指令集
范围 m=0,1,49
m=66, 0≤n≤255
描述 选择一个切纸模式以及执行切纸。数值m选择模式如下:
M(十进制) 打印模式
0,1,49
66
部分切纸(保留一点不切)
走纸(切纸位置(约18mm)+[n*0.125mm]),而且只部分切纸(保留一点不切)注释:
1 需要半切纸时,必须保证切刀有半切功能,否则作为全切处理。
②模式:
2 当n=0时,打印机走纸到切纸位置(约18mm)进行切纸
3 当n≠0时,打印机走纸到(切纸位置(约18mm)+[n*0.125mm(0.0049″)])进行切纸
GS W nL nH设打印区域宽度
名称 设打印区域宽度
格式 ASCII码 GS W nl nh
十六进制 1D 57 nl nh
十进制 29 87 nl nh
范围 0≤nl≤255
0≤nh≤255
描述 通过nl和nh设打印区域宽度到指定位置
打印区域宽度设置为[(nl+nh*256)*0.125mm(0.0049″)]
注释 1 如果设置超出可打印区域,则使用打印区域有效值的最大值
2 GS L命令设置优先于GS W设置,如果[左空白+打印宽度]超出可打印区域,打印机则使用[可打印区域宽度-左空白]。但是,GS W设置仍被保留,直到到它不是使用当前打印
6 如果设置的打印区域宽度小于一个字符宽度,当打印字符出现,如下处理:
① 打印区域扩展右边直到适合放下一个字符
② 如果①不能扩展足够的位置,那就减少左边界直到放得下一个字符。
③ 如果②还不能扩展足够的位置,那就减少右边间距。
7 如果设置的宽度小于垂直的一点列,当另一个字符出现时,接下来的处理只在一列中执行如下:
①在能打印的区域内扩展打印区域宽度右边为垂直一点列给位图
② 如果打印区域不能扩展足够的位置,扩展左边界直到有一个点列的位置
打印区域宽度图示:
17
热敏打印机指令集
GS v 0 nL nH xL xH yL Yh d1……dk打印光栅位图
名称 打印光栅位图
格式 ASCII码 GS V 0 m xl xh yl yh d1…dk
十六进制 1D 76 30 m xl xh yl yh d1…dk
十进制 29 118 48 m xl xh yl yh d1…dk
范围 0≤m≤3,48≤m≤51
0≤xl≤255
0≤xh≤255
18
热敏打印机指令集
0≤yl≤255
0≤yh≤8
0≤d≤255
K=(xl+xh*256)*(yl+yh*256)(k≠0)
描述 选择光栅位图模式。数值m选择模式,如下
M
0,48
1,49
2,50
3,51
模式 垂直方向点密度 水平方向点密度
正常 203.2dpi 203.2dpi
双倍宽度 203.2dpi 101.6dpi
双倍高度 101.6dpi 203.2dpi
四倍模式 101.6dpi 101.6dpi
xl,xh,决定位图的水平方向字节数据个数(xl+xh*256)
yl,yh,决定位图的垂直方向数据位总数
注释:
1 设定该命令前打印缓冲区必须无打印数据,如果有该命令被跳过,后面的数据当作正常数据处理。
2 这命令不影响光栅位图打印(特定大小,加重,双击,颠倒,下划线,倒退打印等等)
4打印区域外面的数据被读入丢失。
5打印光栅位图的图形位置由ESC $(设定绝对打印位置)和GS L(设定左页边距)指定。随后打印的图形位置是8的倍数。
6 用ESC a(选择对齐方式)的设置在光栅位图也有效
8 d表示位图的数据。设定位为1打印一点设定为0不打印该点。
光栅位图图示: 当xl+xh*256=64
GS I n传送打印机ID
名称 传送打印机ID
格式 ASCII GS I n
Hex 1D 49 n
十进制 29 114 n
范围 1≤n≤3, 49≤n≤51
描述 传送打印机ID说明
n 确定打印机ID号的类型
n
1,49
打印机ID号类型 ID
打印机ID模式 模式:IPI80221,十六进制:27H
19
热敏打印机指令集
2,50 ID类型
3,51 硬件版本ID
[ID类型]
位 Off/On 十六进制
0 On
1 On
2
01
02
十进制
1
2
0
4
0
0
-
-
0
功能
屏蔽为1
切纸装置(屏蔽恒为1)
黑标传感器关闭
黑标传感器打开
不使用
不使用
未定义
未定义
不使用
看下面表格
根据硬件版本(IPI80221系列为03H)
Off 00
On 04
00
00
-
-
0
3 Off
4 Off
5 -
6 -
7 Off
1 执行该命令时返回数据而不管主机是否能接收数据
GS r n返回状态
名称 返回状态
格式 ASCII GS r n
Hex 1D 72 n
十进制 29 114 n
范围 n=1,49
描述 传送状态由n指定如下:
n
1,49
功能
传送纸传感器的状态
注释 1 仅在串口下使用
2 当执行该命令时,返回数据而不管主机是否能接收数据。
3 返回状态类型如下:
纸传感器状态(n=1,49):
位 Off/On 十六进制 十进制0,1 Off 00
On 03
2,3 Off 00
On
5,6 -
(0C)
-
4 Off 00
7 Off 00
ASB状态
0 纸卷将尽传感器:纸饱和
3 纸卷将尽传感器:纸将尽
0 纸尽传感器:有纸
(12)0
-
0
纸尽传感器:无纸
不使用固定为Off
未定义固定为1
不使用固定为Off
GS * x y d1…d(x*y*8) 自定义下载位图
名称 自定义下载位图
格式 ASCII GS * x y d1…d(8*x*y/8)
Hex 1D 2A x y d1…d(8*x*y/8)
20
热敏打印机指令集
十进制 29 42 x y d1…d(8*x*y/8)
范围 1≤x≤72字节
1≤y≤48点行(即6字节)(且8*x*y/8≤3456字节)
0≤d≤255
描述 使用x和y定义下载位图点数
x 定义水平方向字节数
y 定义垂直方向点行数(8点行1字节)
注释 1水平方向的点数是x*8;垂直方向的字节数是y/8.
2如果8*x*y/8超出指定范围该命令无效后面的数据作为正常数据打印
3 d表示位图数据,数据d指定打印点为1不打印为0
4有如下情况时下载位图被清:
①执行ESC @命令
②执行用户自定义西文/中文命令
③打印机重启或电源被关。
5下图显示打印数据与位图的关系。
GS / m打印下载位图
名称 打印下载位图
格式 ASCII GS / m
Hex 1D 2F m
十进制 29 47 m
范围 0≤m≤3
48≤m≤51
描述 打印下载位图使用的模式由m选择
M选择如下
21
热敏打印机指令集
m
0,48
1,49
2,50
3,51
模式 垂直点数 水平点数
正常 203.2dpi 203.2dpi
双倍宽 203.2dpi 101.6dpi
双倍高 101.6dpi 203.2dpi
四倍 101.6dpi 101.6dpi
注释 1当位图没有定义时该命令无效
2 在标准模式,打印缓冲区没有数据时该命令才有效
3(加重,双重打印,下划线,字符大小,黑白相反)打印模式对该命令无效,除了颠倒打印。
4 如果下载位图打印超出打印区域,超出的数据不打印
5 如果用GS L 和GS W定义的打印区域小于GS /命令定义的宽度则超出部分不打印。
6 每个位图数据在正常模式下(m=0,48)和双倍高模式(m=2,50),打印机打印一个点:每个位图数据在双倍宽模式(m=1,49)和四倍模式(m=3,15)打印机打两个点。
GS h n选择条码高度
名称 选择条码高度
格式 ASCII GS h n
Hex 1D 68 n
十进制 29 104 n
范围 1≤n≤255
描述 选择条码高度
n 指定垂直方向点数
默认高度点数为n=162(十进制)
GS H n 选择可识别字符的打印位置
名称 选择可识别字符的打印位置
格式 ASCII GS H n
Hex 1D 48 n
十进制 29 72 n
范围 0≤n≤3,48≤n≤51
描述 在打印条码时选择打印可识别字符的位置
n 选择打印位置如下:
N
0,48
1,49
2,50
3,51
打印位置
不打印
在条码上打印
在条码下打印
在条码上下打印
1. 打印的可识别字符为条码的解析
2. 打印字符按正常字体打印,这些打印模式(加重,双重打印,下划线,字符大小,黑白相反打印或90°旋转字符)对可识别字符无效,除了颠倒模式。
3. 默认值n=0
22
热敏打印机指令集
GS w n 选择条码宽度
名称 选择条码宽度
格式 ASCII GS w n
Hex 1D 77 n
十进制 29 119 n
范围 2≤n≤4
描述 选择打印条码的宽度
n 选择打印位置如下:
N
2
3
4
条码宽度
两点宽度
三点宽度
四点宽度
1. 默认值n=3
①GS k m d1…dk②GS k m dn打印条码
名称 打印条码
格式 ①ASCII GS k m d1…dk NUL
Hex 1D 6B m d1…dk 00
十进制 29 107 m d1…dk 0
②ASCII GS k m n d1…dn
Hex 1D 6B m n d1…dn
十进制 29 107 m n d1…dn
范围 ①m=4(十进制)
1≤k
48≤d≤57,65≤d≤90,32,36,37,43,45,46,47
②m=69(十进制)
1≤n≤255
48≤d≤57,65≤d≤90,32,36,37,43,45,46,47
描述 1. m 指定打印条码类型,本打印机只支持打印39码。所以m的取值确定打印代码格式:当m=4时使用方式①代码格式打印39码,当m=69时使用方式②代码格式打印39码
注释①: 1 该命令用NUL表示代码结束
注释②: 1 n表示代码字节数,打印机从下一个条码字符数据处理n个字节
标准状态下注释:
1 如果数据d超出指定范围,那打印机只走纸和正常处理接下来的数据。
2 如果水平大小超出打印区域,那打印机只走纸和正常处理接下来的数据。
3 该命令走多少纸是由打印条码所要求的,根ESC 2或ESC3所指定的间距无效,可用GS h n命令设置条码高度。
4 当打印缓冲区没有数据时才能执行该命令,当有数据在打印缓冲区时,打印机处理数据从m开始当作正常数据处理。
5 打印条码后,该命令设置打印位置为行起始位置。
6 这些打印模式(加重,双重打印,下划线,字符大小,黑白相反打印或90°旋 23
热敏打印机指令集
转字符)对该命令无效,除了颠倒模式。
FS ! n设置中文打印模式
名称 设置中文打印模式
格式 ASCII码 FS ! n
十六进制 1C 21 n
十进制 28 33 n
范围 0≤n≤255
描述 使用n设置中文字符打印模式如下:
位
0
1
2
3
4
5
6
7
关/开 十六进制
—
—
—
—
十进制
—
—
功能
未定义
未定义
关 00 0 双倍宽模式 关闭
开 04 4 双倍宽模式 打开
关 00 —
—
—
—
—
—
—
—
—
—
双倍高模式 关闭
未定义
未定义
未定义
开 08 8 双倍高模式 打开
关 00 0 下划线 关闭
开 80 128 下划线 打开
注释 1 当双倍宽和双倍高模式被选择(包括左右字符间距),四倍大小字符被打印。
2 下划线对所有字符有效,对命令设定的字符间距和空格符号均有效,但对顺时针90度旋转字体无效。
3 下划线的厚度可由FS – 选择,该命令设定的下划线厚度为一点行厚度。
4如果在一行里有不同倍数高度的字体,则所有字符在底线成一直线排列。
5 能够使用FS –打开或关闭下划线模式。
FS &设置中文字符模式
名称 设置中文字符模式
格式 ASCII码 FS &
十六进制 1C 26
十进制 28 38
描述 设置中文字符模式
注释 1 当中文模式被选择,打印机处理每个中文字符有两个字节
2 上电默认选择中文模式
3 小于80H的ASCII码值仍然按西文方式打印,即一个字节一个字符,大于80H的按中文打印,每个字符有两个字节。
4 要打印80H~0FFH的ASCII码值,则要取消中文字符模式。
24
热敏打印机指令集
FS - n打开/关闭下划线模式
名称 打开/关闭下划线模式
格式 ASCII码 FS - n
十六进制 1C 2D n
十进制 28 45 n
范围 0≤n≤2 ,48≤n≤50
描述 打开或关闭下划线模式,根据n如下的值设置
N(十进制) 功能
0,48
1,49
2,50
关闭下划线模式
打开下划线模式(1点行厚度)
打开下划线模式(2点行厚度)
注释 1 打印机能够给所有字符加下划线(包括左右字符间距),但不能给90°顺时针旋转字体加下划线。
2 加下划线模式之后,关闭则设置n=0,下划线缺省厚度为1点行厚度。
3 下划线模式能用FS !关闭和打开。
FS .撤销中文模式
名称 撤销中文模式
格式 ASCII码 FS .
十六进制 1C 2E
十进制 28 46
描述 撤销中文模式
注释 1当中文模式不被选择,所有字符处由一个字节按ASCII码方式完成。
2 当上电时中文模式被选择。
3撤销中文模式则进入西文模式,此时可打印00H~0FFH的ASCII码字符。
FS S n1 n2左边和右边的字符间隔
名称 左边和右边的字符间隔
格式 ASCII码 FS S n1 n2
十六进制 1C 53 n1 n2
十进制 28 83 n1 n2
范围 0≤n1≤255
0≤n2≤255
描述 由n1和n2 分别设定字符左右两边间隔
1 左边间隔是(n1*0.125mm),和右边间隔是(n2*0.125mm)
2 当一行放不下左间距+字宽+右间距时换下一行
注释 1这个命令在正常字符大小时设定左右两边间隔大小正常,当双倍宽时,字符间隔是正常间隔的两倍,当字符宽度被放大n倍时,间隔同样被放大n倍,即设定的右间隔跟字符宽度成正比
25
热敏打印机指令集
FS W n打开/关闭字符四倍模式
名称 打开/关闭字符四倍模式
格式 ASCII码 FS W n
十六进制 1C 57 n
十进制 28 87 n
范围 0≤n≤255
描述 打开/关闭字符四倍模式
当n字节最后一位为0,字符四倍模式被关闭
当n字节最后一位为1,字符四倍模式被打开
注释 1 仅字节最低位有效
2 在四倍模式,打印机打印字符就像双倍宽和双倍高模式同时选择一样
3 当四倍模式用这个命令关闭,那接下来的字符为正常大小
4 当一些字符在一行中有不同高度,所有字符在一条基线上对齐
5 当字符水平方向被放大,他们根据左边字符往右边放大。
FS q n x y d1……dk下载位图到打印机
名称 下载位图到打印机
格式 ASCII码 FS q n x y d1……dk
十六进制 1C 71 n x y d1……dk
十进制 28 113 n x y d1……dk
范围 1≤n≤4(即可写入1~4个图形)
1≤x≤72(打印头为576点)
1≤y≤256(1≤xy≤7168字节)
K=x*y
描述 n为图形代号。
x为图形的宽度字节数。
y 为图形的高度点数。
数据个数为x*y
写入位图需要一定时间,发送完数据后请保持打印机电源供电几秒钟并且不要做任何操作。
注释 1该命令执行一次只能写一个位图,不能同时写多个位图。所写入位图能长久保存,
即使断电也能保存。
2 输入数据超出x*y值时,超出数据按正常数据处理。
3 输入图形大于分区大小时,命令无效,数据按正常处理。
4 输入分区数不存在时,命令无效。
5 写入的位图可以用FS p n m 打印出来。
6 IPI80221系列能够保存4个位图,每个位图区域大小相同,输入超出位图数无效。
位图数据排列如下:
26
热敏打印机指令集
FS p n打印下载位图
名称 打印下载位图
格式 ASCII码 FS p n
十六进制 1C 70 n
十进制 28 112 n
范围 1≤n≤分区数
描述 输入要打印的下载位图分区号则从打印机的内部读出相应的已储存好的位图数据。
所输入的分区必须已储存了位图,否则打印错误图形。
该命令打印的位图均居中排列。
FS V n旋转打印命令
名称 旋转打印命令
格式 ASCII FS V n
十六进制 1C 56 n
十进制 28 86 n
范围 0≤n≤3
描述 设定所有字符的旋转方向
注释
N
0
1
2
3
旋转方向
正常打印
左旋90°
右旋90°
左旋180°
1 该命令设定后一直有效
2当下划线模式被打开,打印机不在旋转字符中加下划线
3双倍宽和双倍高命令在旋转字符中放大的字符方向跟在正常打印时的双倍高和双倍宽放大方向相反
4 右旋90°也可以用ESC V n顺时针旋转90度模式设定
5 左旋180°是单个字体在原打印位置旋转与ESC { n颠倒打印的整行旋转不相同,请勿混淆。
27
热敏打印机指令集
FS 2 c1 c2 d1…dk定义用户自定义中文字符
名称 定义用户自定义中文字符
格式 ASCII FS 2 c1 c2 d1…dk
Hex 1C 32 c1 c2 d1…dk
十进制 28 5 c1 c2 d1…dk
范围 C1恒为FCH
A1≤ C2≤B8
0≤d≤255
描述 通过c1和c2定义用户自定义中文字符
可定义范围FCA1H~FCB8H(包括FCB8)共24个字符
注释 1 C1和C2显示自定义字符,C1指定第一个字节和C2指定第二个字节。
2 d表示点数据,对应1打印一点0不打印该点。
3 中文字符为24点宽*24点高共72字节每字符
4 打印定义字符时,只需要输入该字编码C1和C2。
5 如果用户没有自定义字符,那打印机将可能打印空白或乱码,请务必注意。
6 每执行一次该命令定义一个中文字符。
7 有如下情况时自定义中文被清
①执行ESC @
②执行自定义下载位图
③断电或重启
数据排列如下:
DLE EOT n返回实时状态
名称 返回实时状态
格式 ASCII DLE EOT n
十六进制 10 04 n
28
热敏打印机指令集
十进制 16 4 n
范围 1≤n≤4
描述 通过n指定传送打印机实时状态,和以下参数一致:
N=1:传输打印机状态
N=2:传输离线状态
N=3:传输错误状态
N=4:传输纸卷传感器状态
每当打印机接收到该命令时都会执行返回打印机的当前状态,而不管主机是否已准备好接收。
该命令只在串口下有效。
N=1:打印状态
位 Off/On 十六进制 十进制0 Off 00
1 On 02
2 On 04
3 Off 00
On 08
4 On 10
5,6 - -
7 Off 00
0
2
4
功能
不使用固定为Off
不使用固定为On
不使用固定为On
0 在线
8 离线(IPI80221不存在离线状态故屏蔽)
16 不使用固定为On
-
0
未定义
不使用固定为Off
IPI80221系列屏蔽了离线状态,故返回的打印状态总是为在线(十六进制:12H)
N=2:离线状态
位 Off/On 十六进制 十进制
0 Off
1 On
2
3
00
02
0
2
功能
不使用固定为Off
不使用固定为On
Off 00
On 04
Off 00
On 08
10
0 压板闭合
4 压板打开
0 使用FEED键不进纸(该状态屏蔽)
8 使用FEED键进纸(该状态屏蔽)
16 不使用固定为On
0 有纸
32 无纸
0 无错误(该状态屏蔽)
64 错误产生(该状态屏蔽)
0 不使用固定为Off
4 On
5
6
Off 00
On 20
Off 00
On 40
00 7 Off
IPI80221系列屏蔽离线状态,但仍能返回当前状态。其中使用FEED键不进纸功能被屏蔽,设位3为0,而错误状态也被屏蔽,设位6为0,即当执行该命令时返回压板和有无纸状态。
N=3:错误状态
位 Off/On 十六进制
十进制 功能
不使用固定为Off
不使用固定为On
无机械错误
0 Off 00 0
1 On 02 2
2 Off 00 0
29
热敏打印机指令集
On 04 4 有机械错误
3 Off 00 0 无自动切纸错误
On 08 8 有自动切纸错误
4 On 10 16 不使用固定为On
5
6
Off 00 0 无不可接收错误
On 20 32 有不可接收错误
Off 00 0 无自动接收错误
On 40 64 有自动接收错误
7 Off 00 0 不使用固定为Off
IPI80221系列所有错误状态都被屏蔽,故执行该命令时返回固定值(十六进制12H)
N=4:当前纸传感器状态
位 Off/On 十六进制 十进制0 Off 00
1 On 02
2,3 Off 00
4 On 10
5,6 Off 00
On 60
7 Off 00
0
2
功能
不使用固定为Off
不使用固定为On
0 纸卷将尽传感器:纸足够
16 不使用固定为On
0 纸卷传感器:有纸
96 纸卷传感器:无纸
0 不使用固定为Off
On 0C 12 纸卷将尽传感器:纸将尽
执行时要保证纸将尽传感器有连接上。其中2、5位设为0
DLE ENQ n实时请求打印机
名称 实时请求打印机
格式 ASCII DLE ENQ n
Hex 10 05 n
十进制 16 5 n
范围 1≤n≤2
描述 响应主机请求,n指定请求如下:
n 请求
1 从出现错误的行中恢复并重启(IPI80221系列屏蔽了错误状态故该命令屏蔽)
2 从错误中恢复并清除接收缓冲区和打印缓冲区(IPI80221系列屏蔽了错误状态执行该命令时只清除接收缓冲区和打印缓冲区)
DLE ENQ 2使打印机清除接收缓冲区和打印缓冲区,但打印机保留原来设置(如ESC !、ESC 3等等)的效果。打印机能够用ESC @命令完全初始化。
30
2024年2月11日发(作者:魏冰莹)
热敏打印机指令集
热
敏
打
印
机
指
令
集
1
热敏打印机指令集
目 录
字符说明:.......................................................................................................................................3
LF打印并走纸一行.........................................................................................................................3
ESC SP n设定字符右边间隔..............................................................................................3
ESC ! n选择打印模式..........................................................................................................4
ESC $ nL nH设置绝对打印位置.......................................................................................4
ESC * m nL nH d1……DK选择位图打印模式.............................................................5
ESC - n打开/关闭下划线模式..................................................................................................7
ESC 2设置标准行距命令............................................................................................................7
ESC 3 n设置行距命令............................................................................................................7
ESC @初始化打印机....................................................................................................................7
ESC E n打开/关闭加重模式.....................................................................................................8
ESC J n打印并走纸...................................................................................................................8
ESC V n打开/关闭顺时针旋转90°模式................................................................................8
ESC a n选择排列方式...............................................................................................................9
ESC d n打印并走纸n行..........................................................................................................9
ESC { n打开/关闭颠倒打印模式...........................................................................................9
ESC m半切纸(屏蔽).............................................................................................................10
ESC i全切纸(屏蔽).....................................................................................................................10
ESC j n退纸n点行.................................................................................................................10
ESC nL nH设置相对打印位置..........................................................................................11
ESC & y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)] 定义用户自定义西文字符......................11
ESC ? n删除用户自定义西文................................................................................................12
ESC % n选择/取消使用用户自定义字符..............................................................................13
ESC v纸状态返回......................................................................................................................13
ESC p m n1 n2开钱箱.......................................................................................................13
GS FF走纸到黑标位置..............................................................................................................14
GS
! n选择字符大小.............................................................................................................14
GS B n打开/关闭 黑白相反打印模式...................................................................................15
GS L nL nH选择左边空白......................................................................................................15
GS T n设打印位置到打印行起始..........................................................................................16
①GS V m ②GS V m n选择切模式和切纸(屏蔽).............................................16
GS W nL nH设打印区域宽度.................................................................................................17
GS v 0 nL nH xL xH yL Yh d1……dk打印光栅位图.........................................................18
GS I n传送打印机ID..............................................................................................................19
GS r n返回状态...................................................................................................................20
GS * x y d1…d(x*y*8) 自定义下载位图............................................................................20
GS / m打印下载位图..............................................................................................................21
GS h n选择条码高度...............................................................................................................22
GS H n 选择可识别字符的打印位置.....................................................................................22
GS w n 选择条码宽度.............................................................................................................23
①GS k m d1…dk②GS k m dn打印条码...........................................................................23
FS ! n设置中文打印模式.......................................................................................................24
2
热敏打印机指令集
FS &设置中文字符模式.............................................................................................................24
FS - n打开/关闭下划线模式...................................................................................................25
FS .撤销中文模式................................................................................................................25
FS S n1 n2左边和右边的字符间隔...................................................................................25
FS W n打开/关闭字符四倍模式............................................................................................26
FS q n x y d1……dk下载位图到打印机..........................................................................26
FS p n打印下载位图...............................................................................................................27
FS V n旋转打印命令..............................................................................................................27
FS 2 c1 c2 d1…dk定义用户自定义中文字符..................................................................28
DLE EOT n返回实时状态......................................................................................................28
DLE ENQ n实时请求打印机..................................................................................................30
字符说明:
打印机采用的中文字符为GB2312简体汉字表,西文字符编码采用ASCII码。
字符大小:
字符
正常模式 倍高 倍宽 倍高倍宽
宽度*高度(mm)宽度*高度(mm)宽度*高度(mm)宽度*高度(mm)中文24*24 3*3 3*6 6*3 6*6
西文12*24 1.5*3 1.5*6 3*3 3*6
当字体被n倍放大时,宽度高度均为正常模式的n倍,最高可达7倍具体看GS ! n命令。
LF打印并走纸一行
名字 打印并走纸一行
格式 ASCII码 LF
十六进制
0A
十进制 10
描述 根据当前行的行间距打印打印缓冲区的数据并走纸一行。
无打印数据时只走纸1行
ESC SP n设定字符右边间隔
名称 设定字符右边间隔
格式 ASCII码 ESC SP n
十六进制 1B 20 n
十进制 27 32 n
范围 0≤n≤255
描述 设定字符右边的间隔,间隔为n*0.125mm(n*0.0049”)
当字宽加间隔不能放得下一行打印该行并将该字写在下一行
3
热敏打印机指令集
注释 1 字符的右间距是在双倍宽模式下时是正常间隔的两倍,当字符宽度被放大n倍时,右边间隔同样被横向放大n倍,即设定的右间隔跟字符宽度成正比
ESC ! n选择打印模式
名称 选择打印模式
格式 ASCII码 ESC ! n
十六进制 1B 21 n
十进制 27 33 n
范围 0≤n≤255
描述 使用n选择打印模式如下:
位 关/开 十六进十进制 功能
制
0 — — — 未定义
— — — 未定义
1 — — — 未定义
2 — — — 未定义
3 关 00 0 加重模式 不被选择
开 08 8 加重模式 被选择
4 关 00 0 双倍高模式 不被选择
开 10 16 双倍高模式 被选择
5 关 00 0 双倍宽模式 不被选择
开 20 32 双倍宽模式 被选择
6 — — — 未定义
7 关 00 0 下划线模式 不被选择
开 80 128 下划线模式 被选择
注释 1 当双倍高和双倍宽模式都被选择,打印四倍大小的字符。
2 下划线对所有字符有效,对命令设定的字符间距和空格符号均有效,但对顺时针90度旋转字体无效。
3 下划线的厚度可由FS – 选择,该命令设定的下划线厚度为一点行厚度
4 ESC E 能单独打开或关闭加重模式。
5 ESC - 能单独打开或关闭下划线模式。
6 GS !能单独选择字符大小。
ESC $ nL nH设置绝对打印位置
名称 设置绝对打印位置
格式 ASCII码
ESC $ nL nH
十六进制 1B 24 nL nH
十进制 27 36 nL nH
范围 0≤nL≤255 (最大为打印头宽度)
0≤nH≤255
描述 1 从行的开始到打印位置的距离是[(nL+nH*256)*0.125mm]
2 如果设定的区域超出了打印的有效区域则该命令被忽略。
4
热敏打印机指令集
.3 如果有设定左边空白,则打印位置为左边界+[(nL+nH*256)*0.125mm]
ESC * m nL nH d1……DK选择位图打印模式
名字 选择位图打印模式
格式 ASCII码 ESC * m nL nH d 1……dK
十六进制 1 B 2 A m nL nH d 1……dK
十进制 27 42 m nL nH d 1……dK
范围 m=0,1,32,33
0≤ nL ≤255
0≤ nH ≤3
0≤ d ≤255
描述选择位图模式使用 m
水平方向
M 模式
垂直方向
点数 点密度 点密度 数据个数
0 8点单精度 8 67.7dpi nl+nh*256
1 8点双精度 8 67.7dpi 203.2dpi nl+nh*256
32 24点单精度 24 203.2dpi 101.6dpi (nl+nh*256)*3
33 24点双精度 24 203.2dpi 203.2dip (nl+nh*256)*3
注释:
1 如果数据m超出范围,则后面的数据作为正常数据处理
2 nL和nH表示位图水平方向的点数,点数计算公式:nL+nH*256
3 如果位图数据输入超过打印的有效区域,超出的数据将丢失
4 d表示位图的数据。设置图形的相应位1表示打印或0表示不打印。
5 在单精度模式(m=0,32)下,每一个数据位打印两点,在双精度模式(m=1,33)下,每个打印机打印一点。
7 这个命令不受打印模式影响(加重,双击,下划线,特定大小,相反打印),除了颠倒打印模式。
8 该命令处理完图形后不进行打印要使用命令进行打印,而且图形的位置紧跟着打印数据所写到的位置进行填写。
8点位图图示:
5
热敏打印机指令集
24点位图图示
6
热敏打印机指令集
ESC - n打开/关闭下划线模式
名称 打开/关闭下划线模式
格式 ASCII码 ESC - n
十六进制 1B 2D n
十进制 27 45 n
范围 0≤n≤2 ,48≤n≤50
描述 打开或关闭下划线模式,根据n如下的值设置
N(十进制) 功能
0,48
1,49
2,50
关闭下划线模式
打开下划线模式(1点行厚度)
打开下划线模式(2点行厚度)
注释 1 打印机能够给所有字符加下划线(包括左右字符间距),但不对旋转字体加下划线。
2 n=0时关闭下划线,下划线厚度缺省值为1点行厚度。
3 指定的下划线厚度不随字符大小改变而改变。
4 下划线模式也能用FS !关闭和打开。
ESC 2设置标准行距命令
名称 设置标准行距命令
格式 ASCII码 ESC 2
十六进制 1B 32
十进制 27 50
描述 选择标准行距(包括字高)为3.75mm(30*0.125mm)。
3.75mm行距中:
字高3mm(24步*0.125mm)
空行0.75mm(6步*0.125mm)故一行高度为3.75mm
ESC 3 n设置行距命令
名称 设置行距命令
格式 ASCII码 ESC 3 n
十六进制 1B 33 n
十进制 27 51 n
范围 0≤n≤255
描述 设置行距(带一倍字高)为(n*0.125mm)
所设参数带字高度,如果设置n≤18H(一倍字符高度)则按打印不空行处理,n≥18H(一倍字符高度)时多出的步数作为空行步数
ESC @初始化打印机
名称 初始化打印机
格式 ASCII码 ESC @
十六进制 1B 40
7
热敏打印机指令集
十进制 27 64
描述 清除打印缓冲区的数据,清除各项命令设置(加重,双击,下划线,特定大小,相反打印等)。
不清除接收缓冲区
ESC E n打开/关闭加重模式
名称 打开/关闭加重模式
格式 ASCII码 ESC E n
十六进制 1B 45 n
十进制 27 69 n
范围 0≤n≤255
描述 打开/关闭加重模式
当字节n最低位是0时,加重模式被关闭
当字节n最低位是1时,加重模式被打开
仅n的最低位有效
ESC J n打印并走纸
名称 打印并走纸
格式 ASCII码 ESC J n
十六进制 1B 4A n
十进制 27 74 n
范围 0≤n≤255
描述 打印打印缓冲区的数据并走纸[n*0.125mm(0.0049″)]。
该命令只对本行有效,不改变ESC 2或ESC 3的设置。
所设参数带字高度,如果设置n≤18H(字符高度)则按打印不空行处理,n≥18H(字符高度)时多出的步数作为空行步数。
ESC V n打开/关闭顺时针旋转90°模式
名称 打开/关闭顺时针旋转90°模式
格式 ASCII码 ESC V n
十六进制 1B 56 n
十进制 27 86 n
范围 0≤n≤1,48≤n≤49
描述 打开关闭顺时针旋转90°模式
n的使用如下:
N(十进制) 功能
0,48
1,49
关闭90°顺时针旋转模式
打开90°顺时针旋转模式
注释 1该命令设置后在关闭前一直有效
2当下划线模式被打开,顺时针旋转90°字符中不加下划线
8
热敏打印机指令集
3在顺时针旋转90度模式中,那水平和垂直方向放大倍数关系反过来
ESC a n选择排列方式
名称 选择排列方式
格式 ASCII码 ESC a n
十六进制 1B 61 n
十进制 27 97 n
范围 0≤n≤2 48≤n≤50
描述 在指定位置中所有数据在一行成一直线 n选择排列方式如下
N(十进制)
0、48
1、49
2、50
排列方式
靠左排列
居中排列
靠右排列
注释 1 该命令在打印区域执行的排列方式
2设定该命令前打印缓冲区必须无打印数据
3 设定该命令后设定绝对打印则绝对打印无效数据按排列方式打印。设定了绝对打印再设排列方式,则排列方式无效数据按绝对打印位置打印。该命令与绝对打印关系:谁先设谁有效。注意绝对打印只是当前行有效,排列方式是设定后不改变则一直有效。
排列图例:
ESC d n打印并走纸n行
名称 打印并走纸n行
格式 ASCII码 ESC d n
十六进制 1B 64 n
十进制 27 100 n
范围 0≤n≤255
描述 打印打印缓冲区的数据并走纸n行(包括打印行)
该命令只在本行有效,不改变ESC 2或ESC 3。
ESC { n打开/关闭颠倒打印模式
名称 打开/关闭颠倒打印模式
格式 ASCII ESC { n
Hex 1B 7B n
十进制 27 123 n
9
热敏打印机指令集
范围 0≤n≤255
描述 打开/关闭颠倒模式
当n的最低位是0,颠倒打印模式关闭
当n的最低位是1,颠倒打印模式打开
仅n的最低位有效
设定该命令前打印缓冲区必须无打印数据
颠倒打印图例:
ESC m半切纸(屏蔽)
名称 半切纸
格式 ASCII码 ESC m
十六进制 1B 6D
十进制 27 109
描述 切纸操作,保留一点不切
切纸刀必须要有半切纸的功能,如果无半切功能则全切处理
ESC i全切纸(屏蔽)
名称 全切纸
格式 ASCII码 ESC i
十六进制 1B 69
十进制 27 105
描述 切纸操作,把纸全切断
ESC j n退纸n点行
名称 退纸n点行
格式 ASCII ESC j n
十六进制 1B 6A n
十进制 27 106 n
范围 0≤n≤255
描述 反向走纸n点行
注释 1 执行该命令前必须保证打印缓冲区内没有待打印数据
10
热敏打印机指令集
2 当执行该命令退纸n点行后下一个数据命令是LF打印并走纸一行命令时,打印机会向前走纸n点行
3 该命令只执行走纸,不进行打印。
失效 n=0
ESC nL nH设置相对打印位置
名称 设置相对打印位置
格式 ASCII ESC nL nH
Hex 1B 5C nL nH
十进制 27 92 nL nH
范围 0≤nL≤255
0≤nH≤255
描述 根据当前水平或垂直方向设置打印起始位置
该命令设置的位置与当前位置距离为[(nL+nH*256 )*0.125mm]
注释 1设置超过打印区域则失效。
2 设置方向为水平方向当前打印位置右边,距离为[(nL+nH*256 )*0.125mm]。
ESC & y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)] 定义用户自定义西文字符
名称 定义用户自定义西文字符
格式 ASCII ESC & y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)]
Hex 1B 26 y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)]
十进制 27 38 y c1 c2[x1 d1…(y*x1)]…[xk d1…d(y*xk)]
范围 y=3
20≤c1≤c2≤4F
X=12
0≤d1…d(y*xk) ≤255
描述 定义用户自定义字符
Y表示垂直方向字节数
c1 表示定义字符的起始编码,和c2表示最终编码
x表示水平方向的点数(也是字宽,恒为12)
注释 1可允许字符范围从ASCII码<20>H到<4F>H(包括4FH)(48个字符)
2 定义西文字符前要用ESC % n命令打开定义西文设置,设置被打开则一直有效直到被取消。
3它能用连续字符编码重复定义字符,可以一次定义多个字符,当希望得到只有一个字,使用C1=C2。
例如:定义编码为20H的字符为字符B:
发送(十六进制)代码:1B(ESC) 26(&) 03(y) 20(c1) 20(c2) 0C(X) 04(d1) 00 08 07 FF F8
07 FF F8 04 08 08 04 08 08 04 08 08 04 08 08 06 18 08 03 F4 18 01 E7 F0 00 01 E0 00 00
00(dk)
打印时使用代码(十六进制):1B 25 01(选择使用自定义西文 该选项选择后取消前一直有效,不需要重复设置) 20(自定义字符的编码)
连续定义编码20H到22H为字符A:
11
热敏打印机指令集
发送(十六进制)代码:1B(ESC) 26(&) 03(y) 20(c1) 22(c2) 0C(x1) 00(d1) 00 08 00 00 18 00
01 F8 00 3E 08 01 C2 00 07 02 00 07 E2 00 00 FE 00 00 1F C8 00 01 F8 00 00 38 00 00 08(dk)
0C(x2) 00(d1) 00 08 00 00 18 00 01 F8 00 3E 08 01 C2 00 07 02 00 07 E2 00 00 FE 00 00 1F C8
00 01 F8 00 00 38 00 00 08(dk) 0C(x3) 00(d1) 00 08 00 00 18 00 01 F8 00 3E 08 01 C2 00 07 02
00 07 E2 00 00 FE 00 00 1F C8 00 01 F8 00 00 38 00 00 08(dk)
打印时使用代码(十六进制):1B 25 01(选择使用自定义西文 该选项选择后取消前一直有效,不需要重复设置) 20 21 22(20H~22H字符编码已自定义可直接数据编码使用)
4 用户定义字符为12点宽24点高共36个字节
5 统一设置数据d的1为要打印的点,0为不打印
6 用户不能同时定义字符和下载位图,当该命令被执行,则下载位图被清。
7 用户定义字符有以下情况时被清:
①执行ESC @
②执行自定义下载位图
③断电或重启
8 打印定义西文字符要先用ESC % n命令选择使用自定义西文字符,再写要打印的西文编码。要打印ASCII码原来的西文字符则用ESC % n命令取消使用自定义西文字符,再写要打印的ASCII编码。
9 当同一个字符编码被重复定义时,新的字符数据会取代原来的字符数据,打印的字符为新字符。
10 自定义数据排列如下:
ESC ? n删除用户自定义西文
名称 删除用户自定义西文
格式 ASCII ESC ? n
Hex 1B 3F n
十进制 27 63 n
12
热敏打印机指令集
范围 20H≤n≤4FH
描述 删除用于自定义字符
注释 1该命令通过n删除自定义西文编码,删除用户自定义西文后,将打印内部原来的字符。
2如果没有用户自定义西文字符,那打印机不处理该命令。
ESC % n选择/取消使用用户自定义字符
名称 选择/取消使用用户自定义字符
格式 ASCII ESC % n
Hex 1B 25 n
十进制 27 37 n
范围 0≤n≤255
描述 选择/取消使用用于自定义字符
1 当n的最低位为0,用户自定义字符设置被取消。
当n的最低位为1,用户自定义字符设置被选择。
2当用户自定义字符设置被删除,建立的字符设置自动被选择。
3 n 仅最低位有效。
4 该命令打开后一直使用自定义西文字符,直到该命令取消使用。
5 选择自定义西文字符后没有定义的字符会打印打印机内部原来的字符。
ESC v纸状态返回
名称 纸状态返回
格式 ASCII码 ESC v
十六进制 1B 76
十进制 27 118
描述 查询纸状态
执行该命令打印机会查询当前纸尽传感器状态,有纸返回00H,无纸返回04H.
ESC p m n1 n2开钱箱
名称 开钱箱命令
格式 ASCII ESC p m n1 n2
Hex 1B 70 m n1 n2
十进制 27 112 m n1 n2
范围 0≤m≤255
0≤n1≤255
0≤n2≤255
描述 开钱箱
注释 1 m n1 n2可以为随意的值
2在执行开锁命令操作期间不能重复发送开钱箱命令,开钱箱期间重复发送的开钱箱命令被屏蔽不执行。
13
热敏打印机指令集
3开钱箱时间固定为0.3秒。
4 请保证钱箱线路有链接
GS FF走纸到黑标位置
名称 走纸到黑标位置
格式 ASCII码 GS FF
十六进制 1D 0C
十进制 29 12
注释 1 这个命令仅在有黑标感应器时有效
2 走纸到黑标位置作为打印起始位置
4 执行该命令前打印机必须正在走纸
GS ! n选择字符大小
名称 选择字符大小
格式 ASCII GS ! n
Hex 1D 21 n
十进制 29 33 n
范围 0≤n≤255
(1≤垂直倍数≤8,1≤水平倍数≤8)
描述 选择字符高度使用位0到2和选择字符宽度使用位4到7,如下:
位
0
1
2
3
4
5
6
7
字符宽度选择。见表格1
关/开 十六进制 十进制
字符高度选择。见表格2
功能
14
热敏打印机指令集
表1 表2
字符宽度选择 字符高度选择
十六进制 十进制宽度
十六进制 十进制宽度
00 0 1(正常)
10 16 2(双倍宽)20 32 3
30 48 4
40 64 5
50 80 6
60 96 7
70 112 8
00 0 1(正常)
01 1 2(双倍高)
02 2 3
03 3 4
04 4 5
05 5 6
06 6 7
07 7 8
注释:
1 该命令对所有字符有效。
2 假如n超出规定的范围,该命令忽略
3 当顺时针旋转90度模式时,那水平和垂直方向关系反过来
4 如果在一行里有不同倍数高度的字体,则所有字符在底线成一直线排列。
5 ESC !命令能另外打开和关闭双倍宽和双倍高模式,但是,最后的命令设置才有效。
GS B n打开/关闭 黑白相反打印模式
名称 打开/关闭 黑白相反打印模式
格式 ASCII码 GS B n
十六进制 1D 42 n
十进制 29 66 n
范围 0≤n≤255
描述 打开/关闭黑白相反打印模式
当n的最后一位是0,黑白相反模式被关闭
当n的最后一位是1,黑白相反模式被打开
注释 1 仅n的最后一位有效。
3 该命令对命令设定的字符间隔和空格也有效
4 该命令不影响位图,用户定义位图,条代码。
5 该命令对行间间距无效。
6 黑白相反命令模式比下划线模式有优先权,如果下划线模式一直被选择,当黑白相反命令模式被选择将失去下划线(但下划线模式不会被取消)
GS L nL nH选择左边空白
名称 选择左边空白
格式 ASCII码 GS L nL nH
十六进制 1D 4C nL nH
十进制 29 76 nL nH
范围 0≤nL≤255
0≤nH≤255
描述 使用nL和nH命令设置左边空白
15
热敏打印机指令集
左边空白设定为[(nl+nh*256)*0.125mm]
注释 1 设定该命令前打印缓冲区必须无打印数据。
4 如果设置超过能打印区域,则设定左边界为打印区域,当有数据来时则靠右边腾出一个字宽+字间距写下一个字符
左边界图示:
GS T n设打印位置到打印行起始
名称 设打印位置到打印行起始
格式 ASCII码 GS T n
十六进制 1D 54 n
十进制 29 84 n
范围 n=0,1,48,49
描述 设定打印位置到打印行起始位置
n 指定数据处理在打印缓冲区
n
0,48
1,49
打印位置
设打印位置到打印行起始位置后删除打印缓冲区所有数据
设打印位置到打印行起始位置后打印打印缓冲区所有数据
①GS V m ②GS V m n选择切模式和切纸(屏蔽)
名称 选择切模式和切纸
格式 ASCII码 GS V m
十六进制 1D 56 m
十进制 29 86 m
ASCII码 GS V m n
十六进制 1D 56 m n
十进制 29 86 m n
16
热敏打印机指令集
范围 m=0,1,49
m=66, 0≤n≤255
描述 选择一个切纸模式以及执行切纸。数值m选择模式如下:
M(十进制) 打印模式
0,1,49
66
部分切纸(保留一点不切)
走纸(切纸位置(约18mm)+[n*0.125mm]),而且只部分切纸(保留一点不切)注释:
1 需要半切纸时,必须保证切刀有半切功能,否则作为全切处理。
②模式:
2 当n=0时,打印机走纸到切纸位置(约18mm)进行切纸
3 当n≠0时,打印机走纸到(切纸位置(约18mm)+[n*0.125mm(0.0049″)])进行切纸
GS W nL nH设打印区域宽度
名称 设打印区域宽度
格式 ASCII码 GS W nl nh
十六进制 1D 57 nl nh
十进制 29 87 nl nh
范围 0≤nl≤255
0≤nh≤255
描述 通过nl和nh设打印区域宽度到指定位置
打印区域宽度设置为[(nl+nh*256)*0.125mm(0.0049″)]
注释 1 如果设置超出可打印区域,则使用打印区域有效值的最大值
2 GS L命令设置优先于GS W设置,如果[左空白+打印宽度]超出可打印区域,打印机则使用[可打印区域宽度-左空白]。但是,GS W设置仍被保留,直到到它不是使用当前打印
6 如果设置的打印区域宽度小于一个字符宽度,当打印字符出现,如下处理:
① 打印区域扩展右边直到适合放下一个字符
② 如果①不能扩展足够的位置,那就减少左边界直到放得下一个字符。
③ 如果②还不能扩展足够的位置,那就减少右边间距。
7 如果设置的宽度小于垂直的一点列,当另一个字符出现时,接下来的处理只在一列中执行如下:
①在能打印的区域内扩展打印区域宽度右边为垂直一点列给位图
② 如果打印区域不能扩展足够的位置,扩展左边界直到有一个点列的位置
打印区域宽度图示:
17
热敏打印机指令集
GS v 0 nL nH xL xH yL Yh d1……dk打印光栅位图
名称 打印光栅位图
格式 ASCII码 GS V 0 m xl xh yl yh d1…dk
十六进制 1D 76 30 m xl xh yl yh d1…dk
十进制 29 118 48 m xl xh yl yh d1…dk
范围 0≤m≤3,48≤m≤51
0≤xl≤255
0≤xh≤255
18
热敏打印机指令集
0≤yl≤255
0≤yh≤8
0≤d≤255
K=(xl+xh*256)*(yl+yh*256)(k≠0)
描述 选择光栅位图模式。数值m选择模式,如下
M
0,48
1,49
2,50
3,51
模式 垂直方向点密度 水平方向点密度
正常 203.2dpi 203.2dpi
双倍宽度 203.2dpi 101.6dpi
双倍高度 101.6dpi 203.2dpi
四倍模式 101.6dpi 101.6dpi
xl,xh,决定位图的水平方向字节数据个数(xl+xh*256)
yl,yh,决定位图的垂直方向数据位总数
注释:
1 设定该命令前打印缓冲区必须无打印数据,如果有该命令被跳过,后面的数据当作正常数据处理。
2 这命令不影响光栅位图打印(特定大小,加重,双击,颠倒,下划线,倒退打印等等)
4打印区域外面的数据被读入丢失。
5打印光栅位图的图形位置由ESC $(设定绝对打印位置)和GS L(设定左页边距)指定。随后打印的图形位置是8的倍数。
6 用ESC a(选择对齐方式)的设置在光栅位图也有效
8 d表示位图的数据。设定位为1打印一点设定为0不打印该点。
光栅位图图示: 当xl+xh*256=64
GS I n传送打印机ID
名称 传送打印机ID
格式 ASCII GS I n
Hex 1D 49 n
十进制 29 114 n
范围 1≤n≤3, 49≤n≤51
描述 传送打印机ID说明
n 确定打印机ID号的类型
n
1,49
打印机ID号类型 ID
打印机ID模式 模式:IPI80221,十六进制:27H
19
热敏打印机指令集
2,50 ID类型
3,51 硬件版本ID
[ID类型]
位 Off/On 十六进制
0 On
1 On
2
01
02
十进制
1
2
0
4
0
0
-
-
0
功能
屏蔽为1
切纸装置(屏蔽恒为1)
黑标传感器关闭
黑标传感器打开
不使用
不使用
未定义
未定义
不使用
看下面表格
根据硬件版本(IPI80221系列为03H)
Off 00
On 04
00
00
-
-
0
3 Off
4 Off
5 -
6 -
7 Off
1 执行该命令时返回数据而不管主机是否能接收数据
GS r n返回状态
名称 返回状态
格式 ASCII GS r n
Hex 1D 72 n
十进制 29 114 n
范围 n=1,49
描述 传送状态由n指定如下:
n
1,49
功能
传送纸传感器的状态
注释 1 仅在串口下使用
2 当执行该命令时,返回数据而不管主机是否能接收数据。
3 返回状态类型如下:
纸传感器状态(n=1,49):
位 Off/On 十六进制 十进制0,1 Off 00
On 03
2,3 Off 00
On
5,6 -
(0C)
-
4 Off 00
7 Off 00
ASB状态
0 纸卷将尽传感器:纸饱和
3 纸卷将尽传感器:纸将尽
0 纸尽传感器:有纸
(12)0
-
0
纸尽传感器:无纸
不使用固定为Off
未定义固定为1
不使用固定为Off
GS * x y d1…d(x*y*8) 自定义下载位图
名称 自定义下载位图
格式 ASCII GS * x y d1…d(8*x*y/8)
Hex 1D 2A x y d1…d(8*x*y/8)
20
热敏打印机指令集
十进制 29 42 x y d1…d(8*x*y/8)
范围 1≤x≤72字节
1≤y≤48点行(即6字节)(且8*x*y/8≤3456字节)
0≤d≤255
描述 使用x和y定义下载位图点数
x 定义水平方向字节数
y 定义垂直方向点行数(8点行1字节)
注释 1水平方向的点数是x*8;垂直方向的字节数是y/8.
2如果8*x*y/8超出指定范围该命令无效后面的数据作为正常数据打印
3 d表示位图数据,数据d指定打印点为1不打印为0
4有如下情况时下载位图被清:
①执行ESC @命令
②执行用户自定义西文/中文命令
③打印机重启或电源被关。
5下图显示打印数据与位图的关系。
GS / m打印下载位图
名称 打印下载位图
格式 ASCII GS / m
Hex 1D 2F m
十进制 29 47 m
范围 0≤m≤3
48≤m≤51
描述 打印下载位图使用的模式由m选择
M选择如下
21
热敏打印机指令集
m
0,48
1,49
2,50
3,51
模式 垂直点数 水平点数
正常 203.2dpi 203.2dpi
双倍宽 203.2dpi 101.6dpi
双倍高 101.6dpi 203.2dpi
四倍 101.6dpi 101.6dpi
注释 1当位图没有定义时该命令无效
2 在标准模式,打印缓冲区没有数据时该命令才有效
3(加重,双重打印,下划线,字符大小,黑白相反)打印模式对该命令无效,除了颠倒打印。
4 如果下载位图打印超出打印区域,超出的数据不打印
5 如果用GS L 和GS W定义的打印区域小于GS /命令定义的宽度则超出部分不打印。
6 每个位图数据在正常模式下(m=0,48)和双倍高模式(m=2,50),打印机打印一个点:每个位图数据在双倍宽模式(m=1,49)和四倍模式(m=3,15)打印机打两个点。
GS h n选择条码高度
名称 选择条码高度
格式 ASCII GS h n
Hex 1D 68 n
十进制 29 104 n
范围 1≤n≤255
描述 选择条码高度
n 指定垂直方向点数
默认高度点数为n=162(十进制)
GS H n 选择可识别字符的打印位置
名称 选择可识别字符的打印位置
格式 ASCII GS H n
Hex 1D 48 n
十进制 29 72 n
范围 0≤n≤3,48≤n≤51
描述 在打印条码时选择打印可识别字符的位置
n 选择打印位置如下:
N
0,48
1,49
2,50
3,51
打印位置
不打印
在条码上打印
在条码下打印
在条码上下打印
1. 打印的可识别字符为条码的解析
2. 打印字符按正常字体打印,这些打印模式(加重,双重打印,下划线,字符大小,黑白相反打印或90°旋转字符)对可识别字符无效,除了颠倒模式。
3. 默认值n=0
22
热敏打印机指令集
GS w n 选择条码宽度
名称 选择条码宽度
格式 ASCII GS w n
Hex 1D 77 n
十进制 29 119 n
范围 2≤n≤4
描述 选择打印条码的宽度
n 选择打印位置如下:
N
2
3
4
条码宽度
两点宽度
三点宽度
四点宽度
1. 默认值n=3
①GS k m d1…dk②GS k m dn打印条码
名称 打印条码
格式 ①ASCII GS k m d1…dk NUL
Hex 1D 6B m d1…dk 00
十进制 29 107 m d1…dk 0
②ASCII GS k m n d1…dn
Hex 1D 6B m n d1…dn
十进制 29 107 m n d1…dn
范围 ①m=4(十进制)
1≤k
48≤d≤57,65≤d≤90,32,36,37,43,45,46,47
②m=69(十进制)
1≤n≤255
48≤d≤57,65≤d≤90,32,36,37,43,45,46,47
描述 1. m 指定打印条码类型,本打印机只支持打印39码。所以m的取值确定打印代码格式:当m=4时使用方式①代码格式打印39码,当m=69时使用方式②代码格式打印39码
注释①: 1 该命令用NUL表示代码结束
注释②: 1 n表示代码字节数,打印机从下一个条码字符数据处理n个字节
标准状态下注释:
1 如果数据d超出指定范围,那打印机只走纸和正常处理接下来的数据。
2 如果水平大小超出打印区域,那打印机只走纸和正常处理接下来的数据。
3 该命令走多少纸是由打印条码所要求的,根ESC 2或ESC3所指定的间距无效,可用GS h n命令设置条码高度。
4 当打印缓冲区没有数据时才能执行该命令,当有数据在打印缓冲区时,打印机处理数据从m开始当作正常数据处理。
5 打印条码后,该命令设置打印位置为行起始位置。
6 这些打印模式(加重,双重打印,下划线,字符大小,黑白相反打印或90°旋 23
热敏打印机指令集
转字符)对该命令无效,除了颠倒模式。
FS ! n设置中文打印模式
名称 设置中文打印模式
格式 ASCII码 FS ! n
十六进制 1C 21 n
十进制 28 33 n
范围 0≤n≤255
描述 使用n设置中文字符打印模式如下:
位
0
1
2
3
4
5
6
7
关/开 十六进制
—
—
—
—
十进制
—
—
功能
未定义
未定义
关 00 0 双倍宽模式 关闭
开 04 4 双倍宽模式 打开
关 00 —
—
—
—
—
—
—
—
—
—
双倍高模式 关闭
未定义
未定义
未定义
开 08 8 双倍高模式 打开
关 00 0 下划线 关闭
开 80 128 下划线 打开
注释 1 当双倍宽和双倍高模式被选择(包括左右字符间距),四倍大小字符被打印。
2 下划线对所有字符有效,对命令设定的字符间距和空格符号均有效,但对顺时针90度旋转字体无效。
3 下划线的厚度可由FS – 选择,该命令设定的下划线厚度为一点行厚度。
4如果在一行里有不同倍数高度的字体,则所有字符在底线成一直线排列。
5 能够使用FS –打开或关闭下划线模式。
FS &设置中文字符模式
名称 设置中文字符模式
格式 ASCII码 FS &
十六进制 1C 26
十进制 28 38
描述 设置中文字符模式
注释 1 当中文模式被选择,打印机处理每个中文字符有两个字节
2 上电默认选择中文模式
3 小于80H的ASCII码值仍然按西文方式打印,即一个字节一个字符,大于80H的按中文打印,每个字符有两个字节。
4 要打印80H~0FFH的ASCII码值,则要取消中文字符模式。
24
热敏打印机指令集
FS - n打开/关闭下划线模式
名称 打开/关闭下划线模式
格式 ASCII码 FS - n
十六进制 1C 2D n
十进制 28 45 n
范围 0≤n≤2 ,48≤n≤50
描述 打开或关闭下划线模式,根据n如下的值设置
N(十进制) 功能
0,48
1,49
2,50
关闭下划线模式
打开下划线模式(1点行厚度)
打开下划线模式(2点行厚度)
注释 1 打印机能够给所有字符加下划线(包括左右字符间距),但不能给90°顺时针旋转字体加下划线。
2 加下划线模式之后,关闭则设置n=0,下划线缺省厚度为1点行厚度。
3 下划线模式能用FS !关闭和打开。
FS .撤销中文模式
名称 撤销中文模式
格式 ASCII码 FS .
十六进制 1C 2E
十进制 28 46
描述 撤销中文模式
注释 1当中文模式不被选择,所有字符处由一个字节按ASCII码方式完成。
2 当上电时中文模式被选择。
3撤销中文模式则进入西文模式,此时可打印00H~0FFH的ASCII码字符。
FS S n1 n2左边和右边的字符间隔
名称 左边和右边的字符间隔
格式 ASCII码 FS S n1 n2
十六进制 1C 53 n1 n2
十进制 28 83 n1 n2
范围 0≤n1≤255
0≤n2≤255
描述 由n1和n2 分别设定字符左右两边间隔
1 左边间隔是(n1*0.125mm),和右边间隔是(n2*0.125mm)
2 当一行放不下左间距+字宽+右间距时换下一行
注释 1这个命令在正常字符大小时设定左右两边间隔大小正常,当双倍宽时,字符间隔是正常间隔的两倍,当字符宽度被放大n倍时,间隔同样被放大n倍,即设定的右间隔跟字符宽度成正比
25
热敏打印机指令集
FS W n打开/关闭字符四倍模式
名称 打开/关闭字符四倍模式
格式 ASCII码 FS W n
十六进制 1C 57 n
十进制 28 87 n
范围 0≤n≤255
描述 打开/关闭字符四倍模式
当n字节最后一位为0,字符四倍模式被关闭
当n字节最后一位为1,字符四倍模式被打开
注释 1 仅字节最低位有效
2 在四倍模式,打印机打印字符就像双倍宽和双倍高模式同时选择一样
3 当四倍模式用这个命令关闭,那接下来的字符为正常大小
4 当一些字符在一行中有不同高度,所有字符在一条基线上对齐
5 当字符水平方向被放大,他们根据左边字符往右边放大。
FS q n x y d1……dk下载位图到打印机
名称 下载位图到打印机
格式 ASCII码 FS q n x y d1……dk
十六进制 1C 71 n x y d1……dk
十进制 28 113 n x y d1……dk
范围 1≤n≤4(即可写入1~4个图形)
1≤x≤72(打印头为576点)
1≤y≤256(1≤xy≤7168字节)
K=x*y
描述 n为图形代号。
x为图形的宽度字节数。
y 为图形的高度点数。
数据个数为x*y
写入位图需要一定时间,发送完数据后请保持打印机电源供电几秒钟并且不要做任何操作。
注释 1该命令执行一次只能写一个位图,不能同时写多个位图。所写入位图能长久保存,
即使断电也能保存。
2 输入数据超出x*y值时,超出数据按正常数据处理。
3 输入图形大于分区大小时,命令无效,数据按正常处理。
4 输入分区数不存在时,命令无效。
5 写入的位图可以用FS p n m 打印出来。
6 IPI80221系列能够保存4个位图,每个位图区域大小相同,输入超出位图数无效。
位图数据排列如下:
26
热敏打印机指令集
FS p n打印下载位图
名称 打印下载位图
格式 ASCII码 FS p n
十六进制 1C 70 n
十进制 28 112 n
范围 1≤n≤分区数
描述 输入要打印的下载位图分区号则从打印机的内部读出相应的已储存好的位图数据。
所输入的分区必须已储存了位图,否则打印错误图形。
该命令打印的位图均居中排列。
FS V n旋转打印命令
名称 旋转打印命令
格式 ASCII FS V n
十六进制 1C 56 n
十进制 28 86 n
范围 0≤n≤3
描述 设定所有字符的旋转方向
注释
N
0
1
2
3
旋转方向
正常打印
左旋90°
右旋90°
左旋180°
1 该命令设定后一直有效
2当下划线模式被打开,打印机不在旋转字符中加下划线
3双倍宽和双倍高命令在旋转字符中放大的字符方向跟在正常打印时的双倍高和双倍宽放大方向相反
4 右旋90°也可以用ESC V n顺时针旋转90度模式设定
5 左旋180°是单个字体在原打印位置旋转与ESC { n颠倒打印的整行旋转不相同,请勿混淆。
27
热敏打印机指令集
FS 2 c1 c2 d1…dk定义用户自定义中文字符
名称 定义用户自定义中文字符
格式 ASCII FS 2 c1 c2 d1…dk
Hex 1C 32 c1 c2 d1…dk
十进制 28 5 c1 c2 d1…dk
范围 C1恒为FCH
A1≤ C2≤B8
0≤d≤255
描述 通过c1和c2定义用户自定义中文字符
可定义范围FCA1H~FCB8H(包括FCB8)共24个字符
注释 1 C1和C2显示自定义字符,C1指定第一个字节和C2指定第二个字节。
2 d表示点数据,对应1打印一点0不打印该点。
3 中文字符为24点宽*24点高共72字节每字符
4 打印定义字符时,只需要输入该字编码C1和C2。
5 如果用户没有自定义字符,那打印机将可能打印空白或乱码,请务必注意。
6 每执行一次该命令定义一个中文字符。
7 有如下情况时自定义中文被清
①执行ESC @
②执行自定义下载位图
③断电或重启
数据排列如下:
DLE EOT n返回实时状态
名称 返回实时状态
格式 ASCII DLE EOT n
十六进制 10 04 n
28
热敏打印机指令集
十进制 16 4 n
范围 1≤n≤4
描述 通过n指定传送打印机实时状态,和以下参数一致:
N=1:传输打印机状态
N=2:传输离线状态
N=3:传输错误状态
N=4:传输纸卷传感器状态
每当打印机接收到该命令时都会执行返回打印机的当前状态,而不管主机是否已准备好接收。
该命令只在串口下有效。
N=1:打印状态
位 Off/On 十六进制 十进制0 Off 00
1 On 02
2 On 04
3 Off 00
On 08
4 On 10
5,6 - -
7 Off 00
0
2
4
功能
不使用固定为Off
不使用固定为On
不使用固定为On
0 在线
8 离线(IPI80221不存在离线状态故屏蔽)
16 不使用固定为On
-
0
未定义
不使用固定为Off
IPI80221系列屏蔽了离线状态,故返回的打印状态总是为在线(十六进制:12H)
N=2:离线状态
位 Off/On 十六进制 十进制
0 Off
1 On
2
3
00
02
0
2
功能
不使用固定为Off
不使用固定为On
Off 00
On 04
Off 00
On 08
10
0 压板闭合
4 压板打开
0 使用FEED键不进纸(该状态屏蔽)
8 使用FEED键进纸(该状态屏蔽)
16 不使用固定为On
0 有纸
32 无纸
0 无错误(该状态屏蔽)
64 错误产生(该状态屏蔽)
0 不使用固定为Off
4 On
5
6
Off 00
On 20
Off 00
On 40
00 7 Off
IPI80221系列屏蔽离线状态,但仍能返回当前状态。其中使用FEED键不进纸功能被屏蔽,设位3为0,而错误状态也被屏蔽,设位6为0,即当执行该命令时返回压板和有无纸状态。
N=3:错误状态
位 Off/On 十六进制
十进制 功能
不使用固定为Off
不使用固定为On
无机械错误
0 Off 00 0
1 On 02 2
2 Off 00 0
29
热敏打印机指令集
On 04 4 有机械错误
3 Off 00 0 无自动切纸错误
On 08 8 有自动切纸错误
4 On 10 16 不使用固定为On
5
6
Off 00 0 无不可接收错误
On 20 32 有不可接收错误
Off 00 0 无自动接收错误
On 40 64 有自动接收错误
7 Off 00 0 不使用固定为Off
IPI80221系列所有错误状态都被屏蔽,故执行该命令时返回固定值(十六进制12H)
N=4:当前纸传感器状态
位 Off/On 十六进制 十进制0 Off 00
1 On 02
2,3 Off 00
4 On 10
5,6 Off 00
On 60
7 Off 00
0
2
功能
不使用固定为Off
不使用固定为On
0 纸卷将尽传感器:纸足够
16 不使用固定为On
0 纸卷传感器:有纸
96 纸卷传感器:无纸
0 不使用固定为Off
On 0C 12 纸卷将尽传感器:纸将尽
执行时要保证纸将尽传感器有连接上。其中2、5位设为0
DLE ENQ n实时请求打印机
名称 实时请求打印机
格式 ASCII DLE ENQ n
Hex 10 05 n
十进制 16 5 n
范围 1≤n≤2
描述 响应主机请求,n指定请求如下:
n 请求
1 从出现错误的行中恢复并重启(IPI80221系列屏蔽了错误状态故该命令屏蔽)
2 从错误中恢复并清除接收缓冲区和打印缓冲区(IPI80221系列屏蔽了错误状态执行该命令时只清除接收缓冲区和打印缓冲区)
DLE ENQ 2使打印机清除接收缓冲区和打印缓冲区,但打印机保留原来设置(如ESC !、ESC 3等等)的效果。打印机能够用ESC @命令完全初始化。
30