XINYE
热敏式打印机
编程手册
XP-80X Series
XPRINTER COMPANY
XPrinter
www.xprinter.net
格式说明
本手册适用于公司生产的 80mm 系列热敏票据打印机 XP-80XX 系列的产品。
本编程手册的命令说明包括以下部分:
1) 命令名称及功能概述。这是命令描述的第一部分。给出了 ASCII 码形式的命令及该命令的功
能概述。
2) 格式。这部分使用了 ASCII 码编码形式,十六进制码形式,十进制码形式 3 种形式描述该命
令。
其中的取值范围部分无特殊说明则为十进制数,例如下例中 1 ≤ n ≤ 4,其中 1 为十进制数的
1,而不是 ASCII 码编码表中的“1”。
3) 范围。给出了变量的范围。
4) 描述。给出了命令的详细的解释。
5) 注释。给出了命令的注意事项。由于命令在不同模式下,和不同命令配合时,将可能导致相
互影响,而此部分给出了这些细节。
6) 参考。给出了与此命令相关、相似的其他命令。
实时状态传送
ASCII 码
十六进制码
十进制码
1 ≤ n ≤ 4
实时传送由参数 n 指定的打印机状态:
EOT
04
4
DLE
10
16
n
n
n
…..
• 打印机收到该命令后立即返回相关状态
….
---> DLE EOT n
--->
--->
--->
[格式]
[范围]
[描述]
[注释]
[参考]
--->
--->
1、HT
水平定位
[格式]
[描述]
[注释]
HT
09
9
ASCII 码 十
六进制码
十进制码
移动打印位置到下一个水平定位点的位置。
• 如果没有设置下一个水平定位点的位置,则该命令被忽略。
• 如果下一个水平定位点的位置在打印区域外,则打印位置移动到为 [打印区域宽度 +
1]。
• 通过 ESC D 命令设置水平定位点的位置。
XPrinter
THERMAL RECEIPT PRINTER
1
www.xprinter.net
• 打印位置位于 [打印区域宽度+ 1] 处时接收到该命令,打印机执行打印缓冲区满打
印当前行,并且在下一行的开始处理水平定位。
• 默认值水平定位位置是每 8 个标准 ASCII 码字符(12×24)字符跳一格(即第 9,17,
25,…
列)。
• 当前行缓冲区满时,打印机执行下列动作: 标准模式下,打印机打印当前行
内容并将打印位置置于下一行的起始位置。 页模式下,打印机进行换行并将
打印位置置于下一行的起始位置。
[参考]
ESC D
2、LF 打印并换行
[格式]
ASCII 码 十
六进制码 十
进制码
LF
0A
10
[描述]
[注释]
[参考]
3、FF
[格式]
[描述]
[注释]
[参考]
将打印缓冲区中的数据打印出来,并且按照当前行间距,把打印纸向前推进一行。
该命令把打印位置设置为行的开始位置。
ESC 2, ESC 3
打印并回到标准模式(在页模式下)
FF
0C
12
ASCII 码
十六进制码
十进制码
在页模式下将打印缓冲区中的数据全部打印出来并返回标准模式。
• 打印后,清除缓冲区中的数据。
• 将由 ESC W 设置的打印区域复位到缺省设置。
• 打印机不执行切纸动作。
• 该命令设置打印位置为行的起始点。
• 该命令仅在页模式下有效。
ESC FF, ESC L, ESC S
4、CAN 页模式下取消打印数据
[格式]
[描述]
[注释]
[参考]
24
CAN
18 十
ASCII 码
十六进制码
进制码
在页模式下,删除当前打印区域中的所有打印数据。
• 该命令只在页模式下有效。
• 如果先前设定区域与当前区域有重叠部分,重叠部分也被删除。
ESC L, ESC W
XPrinter
THERMAL RECEIPT PRINTER
2
www.xprinter.net
5、DLE EOT n
实时状态传送
[格式]
[范围]
[描述]
[注释]
ASCII 码
十六进制码
十进制码
1 ≤ n ≤ 4
根据下列参数,实时传送打印机状态,参数 n 用来指定所要传送的打印机状态:
EOT
04
4
DLE
10
16
n
n
n
n = 1:传送打印机状态
n = 2:传送脱机状态
n = 3:传送错误状态
n = 4:传送纸传感器状态
• 打印机收到该命令后立即返回相关状态
• 该命令尽量不要插在 2 个或更多字节的命令序列中。
• 即使打印机被 ESC =(选择外设)命令设置为禁止,该命令依然有效。
• 打印机传送当前状态,每一状态用 1 个字节数据表示。
• 打印机传送状态时并不确认主机是否收到。
• 打印机收到该命令立即执行。
• 该命令只对串口打印机有效。打印机在任何状态下收到该命令都立即执行。
n = 1: 打印机状态
位
0
1
2
十六进制码 十进制码 功能
00
02
00
04
00
08
10
---
00
固定为 0
固定为 1
一个或两个钱箱打开
两个钱箱都关闭
联机
脱机
固定为 1
未定义
固定为 0
0
2
0
4
0
8
16
---
00
0/1
0
1
0
1
0
1
1
3
4
5,6
7
0
n = 2: 脱机状态
位
0
1
2
0/1 十六进制码 十进制码
0
1
0
1
0
1
1
0
1
0
1
0
0
2
0
4
0
8
16
0
32
0
64
0
00
02
00
04
00
08
10
00
20
00
40
00
3
4
5
6
7
功能
固定为 0
固定为 1
上盖关
上盖开
未按走纸键
按下走纸键
固定为 1
打印机不缺纸
打印机缺纸
没有出错情况
有错误情况
固定为 0
XPrinter
THERMAL RECEIPT PRINTER
3
www.xprinter.net
0/1 十六进制码 十进制码
0
1
n = 3: 错误状态
位
0
1
2
3
0
1
1
0
1
0
1
0
4
5
6
7
00
02
---
00
08
10
00
20
00
40
00
0
2
---
0
8
16
0
32
0
64
0
n = 4: 传送纸状态
1/0 十六进制码 十进制码
位
0
0
1
1
2,3 0
1
4
1
5,6 0
1
0
00
02
00
0C
10
00
60
00
0
2
0
12
16
0
96
0
7
DLE ENQ, GS a, GS r
[参考]
功能
固定为 0
固定为 1
未定义
切刀无错误
切刀有错误
固定为 1
无不可恢复错误
有不可恢复错误
打印头温度和电压正常
打印头温度或电压超出范围
固定为 0
功能
固定为 0
固定为 1
有纸
纸将尽
固定为 1
有纸
纸尽
固定为 0
6、DLE ENQ n 实时对打印机请求
[格式]
[范围]
[描述]
[注释]
[参考]
ASCII 码
十六进制码
十进制码
1 ≤n ≤ 2
打印机响应主机请求。N 指定下列请求
ENQ
05
5
DLE
10
16
n
n
n
n 请求内容
1 从错误状态恢复并且继续被中断的打印
2 在清除命令接收缓冲区和打印缓冲区从错误状态恢复
• 该命令只在切刀出错时有效。
• 串口模式下,打印机接收该命令后立即执行。
• 并口模式下,打印机忙的时候该命令不执行。
• 该命令尽量不要插在 2 个或更多字节的命令序列中。
• 即使打印机被 ESC =(选择外设)命令设置为禁止,该命令依然有效。
DLE EOT
XPrinter
THERMAL RECEIPT PRINTER
4
www.xprinter.net
7、DLE DC4 n m t 实时产生钱箱开启脉冲
[格式]
[范围]
[描述]
[注释]
DLE
10
16
DC4
14
20
n m
n m
n m
ASCII 码
十六进制码
十进制码
n = 1
m = 0, 1
1 ≤ t≤ 8
在指定的钱箱插座引脚产生设定的开启脉冲,引脚由 m 指定:
t
t
t
m 连接引脚
0 钱箱插座引脚 2
1 钱箱插座引脚 5
脉冲高电平时间为[ t × 100 ms],低电平的时间为[ t × 100 ms]。
• 当打印机正在执行钱箱开启命令(ESC p 或 DEL DC4)时,该命令被忽略。
• 串口模式下,打印机接收该命令后立即执行。
• 并口模式下,打印机忙的时候该命令不执行。
• 如果打印数据中包含和此命令相同的数据,则这些数据将被当作该命令执行。用户必
须考虑到这种情况。
• 该命令尽量不要插在 2 个或更多字节的命令序列中。
• 即使打印机被 ESC =(选择外设)命令设置为禁止,该命令依然有效。
ESC p
[参考]
8、ESC FF
页模式下打印
[格式]
[描述]
[注释]
[参考]
FF
0C
12
ESC
1B
27
ASCII 码
十六进制码
十进制码
页模式下,打印缓冲区的所有所有内容。
• 该命令只在页模式下有效。
• 打印后不清除打印缓冲区的内容、 ESC T 和 ESC W 设置和字符的位置等。
FF, ESC L, ESC S
9、ESC SP n 设置字符右间距
ESC
1B
27
SP
20
32
n
n
n
ASCII 码
十六进制码
十进制码
[格式]
[范围] 0 ≤ n≤255
[描述]
[注释]
设置字符的右间距为[n×横向移动单位或纵向移动单位]英寸。
• 当字符放大时,右间距随之放大相同的倍数。
• 此命令设置的值在页模式和标准模式下是相互独立的。
• 横向或纵向移动单位由 GS P 指定。改变横向或纵向移动单位不改变当前右间距。
• GS P 命令可改变水平(和垂直)运动单位。但是该值不得小于最小水平移动量,并且
必须为最小水平移动量的偶数单位。
XPrinter
THERMAL RECEIPT PRINTER
5
www.xprinter.net
• 标准模式下,使用横向移动单位。
• 在页模式下,根据区域的方向和起始位置来选择使用横向移动单位或纵向移动单位,
其选择方式如下:
1、当打印起始位置由 ESC T 设置为打印区域的左上角或右下角时,使用横向移动
单 位;
2、当打印起始位置由 ESC T 设置为打印区域的左下角或右上角时,使用纵向移动
单 位;
• 最大右间距是 31.91 毫米(255/203 英寸)。 任何超过这个值的设置都自动转换为
最 大右间距。
[默认值]
[参考]
n = 0
GS P
[格式]
[范围]
[描述]
10、ESC ! n
选择打印模式
ASCII 码
十六进制码
十进制码
0 ≤ n ≤ 255
根据 n 的值设置字符打印模式
ESC
1B
27
!
n
21 n
33 n
1/0 十六进制码 十进制码 功能
0
1
位
0
1,2
3
4
5
6
7
0
1
0
1
0
1
0
1
00
01
---
00
08
00
10
00
20
---
00
80
0
1
---
0
8
0
16
0
32
---
0
128
标准 ASCII 码字体 A (12 × 24)
压缩 ASCII 码字体 B (9 × 17)
未定义
取消加粗模式
选择加粗模式
取消倍高模式
选择倍高模式
取消倍宽模式
选择倍宽模式
未定义
取消下划线模式
选择下划线模式
[注释]
[默认值]
[参考]
• 当倍宽和倍高模式同时选择时,字符同时在横向和纵向放大两倍。
• 除了 HT 设置的空格和顺时针旋转 90° 的字符,其余任何字符都可以加下划线。
• 下划线度由 ESC - 确定,与字符无关。
• 当一行中部分字符为倍高或更高,所有字符以底端对齐。
• ESC E 也能选择或取消加粗模式,最后被执行的命令有效。
• ESC – 也能选择或取消下划线模式,最后被执行的命令有效。
• GS ! 也能设置字符大小,最后被执行的命令有效。
• 粗体模式对英数字符和汉字都有效。除粗体模式外的所有打印模式仅对英数字符有效。
n = 0
ESC -, ESC E, GS !
XPrinter
THERMAL RECEIPT PRINTER
6
www.xprinter.net
11、ESC $ nL nH
设置绝对打印位置
[格式]
[范围]
[描述]
[注释]
ESC
1B
27
$
nL nH
24 nL nH
36 nL nH
ASCII 码
十六进制码
十进制码
0≤nL ≤ 255
0 ≤nH≤255
将当前位置设置到距离行首(nL + nH×256)× (横向或纵向移动单位)处。
• 如果设置位置在指定打印区域外,该命令被忽略。
• 横向和纵向移动单位由 GS P 设置。
• 标准模式下使用横向移动单位。
• 在页模式下,根据打印区域的方向和打印起始位置来选择使用横向移动单位或纵向移
动单位,其选择方式如下:
1、当打印起始位置由 ESC T 设置为打印区域的左上角或右下角时,使用横向移动
单 位;
2、当打印起始位置由 ESC T 设置为打印区域的左下角或右上角时,使用纵向移动
单 位;
[参考]
ESC \, GS $, GS \, GS P
12、ESC % n 选择/取消用户自定义字符
ESC
1B
27
%
n
25 n
37 n
ASCII 码
十六进制码
十进制码
0 ≤ n ≤255
选择或取消用户自定义字符。
• 当 n 的最低位为 0 时,不使用用户自定义字符。
• 当 n 的最低位为 1 时,使用用户自定义字符。
• 当取消使用用户自定义字符的时候,自动使用内部字库。
• n 只有最低位有效。
n = 0
ESC &, ESC ?
[格式]
[范围]
[描述]
[注释]
[默认值]
[参考]
13、ESC & y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]
定义用户自定义字符
[格式]
[范围]
[描述]
&
y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]
26 y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]
38 y c1 c2 [x1 d1...d(y × x1)]...[xk d1...d(y × xk)]
ESC
1B
27
ASCII 码
十六进制码
十进制码
y = 3
32 ≤ c1 ≤ c2 ≤ 127
0 ≤ x ≤ 12 标准 ASCII 码字体 A (12 × 24)
0 ≤ x ≤ 9 压缩 ASCII 码字体 B (9 × 17)
0 ≤ d1 ... d(y × xk) ≤ 255
定义用户自定义字符
XPrinter
THERMAL RECEIPT PRINTER
7
www.xprinter.net