云打印机对接说明

6. 打印机常用ESC/POS指令集

  • LF 打印并走纸一行
内容说明
[格式]ASCII:LF
Hex:0A
Decimal:10
[描述]· 标准模式下打印缓冲区内数据并走纸一行
[注释]· 该指令将当前位置置于行首。
  • ESC ! n 选择打印模式
内容说明
[格式]ASCII:ESC ! n
Hex:1B 21 n
Decimal:27 33 n
[范围]0≤n≤255
[描述]设根据n的值设置字符打印模式
n=0字体标准大小
n=16字体倍高
n=32字体倍宽
n=48字体倍高宽
[注释]· 所有字符以底端对齐。
· 对英数字符和汉字同时有效。
[默认值]n=0
  • ESC a n 选择对齐方式
内容说明
[格式]ASCII:ESC a n
Hex:1B 61 n
Decimal:27 97 n
[范围]0≤n≤2 或 48≤n≤50
[描述]将一行数据按照指定的位置对齐如下n用以选择对齐方式:
0,48 左对齐
1,49 居中
2,50 右对齐
[注释]· 标准模式下仅在一行的开始处时,该命令才有效。
· 该命令在打印区域执行对齐。
[默认值]n=0
  • ESC p m t1 t2 打开钱箱驱动脉冲
内容说明
[格式]ASCII:ESC p m t1 t2
Hex:1B 70 m t1 t2
Decimal:27 112 m t1 t2
[范围]m = 0, 1, 48, 49
0 ≤ t1 ≤ 255
0 ≤ t2 ≤ 255
[描述]· m=0, 48 钱箱插座引脚2;m=1, 49 钱箱插座引脚5
· t1指定脉冲开启时间为[ t1 × 2 ms].
· t2指定脉冲关闭时间为[ t2 × 2 ms].
[注释]· 指定一个值(t1
  • GS V m 切刀裁纸
内容说明
[格式]ASCII:GS V m
Hex:1D 56 m
Decimal:29 86 m
[范围]m=1, 49
[描述]· 选择一种切刀裁纸操作
[注释]· 依据所装的自动裁纸器类型的不同,裁纸状态也不同。
· 仅在一行开头处理该命令时,该命令有效。
· 只有部分裁纸,没有完全裁纸。
  • GS H n 选择条码字符的打印位置
内容说明
[格式]ASCII:GS H n
Hex:1D 48 n
Decimal:29 72 n
[范围]0≤n≤3 或 48≤n≤51
[描述]打印条码时,为条码字符选择打印位置。
n指定条码字符打印位置:
0,48 不打印
1,49 在条码上方
2,50 在条码下方
3,51 在条码上方及下方
[默认值]n = 0
  • GS h n 选择条码高度
内容说明
[格式]ASCII:GS h n
Hex:1D 68 n
Decimal:29 104 n
[范围]1≤n≤255
[描述]· 设置条码的纵向高度。n设定垂直方向的点数(0.125mm/点)
[默认值]n= 162
  • GS w n 设置条形码宽度
内容说明
[格式]ASCII:GS w n
Hex:1D 77 n
Decimal:29 119 n
[范围]1≤n≤6
[描述]· 设置条形码水平尺寸
[默认值]n=3
  • GS k m n d1…dn 打印条码
内容说明
[格式]ASCII:GS k m n d1…dk
Hex:1D 6B m n d1…dk
Decima:29 107 m n d1…dk
[范围]65≤ m ≤89(d1…dn长度取决于使用的条形码系统)
[描述]· 选定条形码系统并打印。
[注释]· n用来指示条码数据的个数,打印机将其后边n字节数据作为条码数据处理。
· 如果n超出了指定范围,则打印机停止该命令的处理,并将后续数据作为普通数据处理。
· 如果条码数据d超出了规定的范围,该命令无效。
· 如果条码横向超出了打印区域,无效。
· 这条命令不管由ESC2或ESC3命令设置的行高是多少,走纸距离都与设置 的条码高度相等。
· 这条命令只有在打印缓冲区没有数据时才有效,如果打印缓冲区有数据,该命令被忽略。
· 打印条码后,将打印位置设置在行首。

m选定条形码系统如下:

m条形码系统数据长度字符个数字符范围
65UPC-A固定11≤n≤120~948≤d≤57
66UPC-E固定6≤n≤70~948≤d≤57
67JAN13(EAN13)固定12≤n≤130~948≤d≤57
68JAN8(EAN8)固定7≤n≤80~948≤d≤57
69CODE39可变1≤n≤640~9, A~Z, SP, $,
%, *, +, -, ., /
48≤d≤57, 65≤d≤90, 32,
36, 37, 43, 45, 46, 47
70Code 2 of 5 Interleaved可变2≤n≤64
(偶数)
0~948≤d≤57
71CODABAR可变1≤n0~9, A~D, a~d,
$, +, -, ., /, :
48≤d≤57, 65≤d≤68, 97≤d≤100,
36, 43, 45, 46, 47, 58,
65≤d1≤68, 97≤d1≤100,
65≤dk≤68, 97≤dk≤100
72CODE93可变1≤n≤64
73CODE128可变2≤n≤64
81Code 2 of 5 Matrix可变1≤n≤640~948≤d≤57
82Code 2 of 5 Industrial可变1≤n≤640~948≤d≤57
83Code 2 of 5 IATA可变1≤n≤640~948≤d≤57
84Code 2 of 5 Datalogic可变1≤n≤640~948≤d≤57
85CODE11可变1≤n≤640~9, –48≤d≤57,45
86CODE39 xtended可变1≤n≤64
87GS1 DataBar固定n=130~948≤d≤57
88GS1 DataBar Expanded可变
89MSI Plessey可变1≤n≤640~948≤d≤57
  • GS v 0 m xL xH yL yH d1….dk 打印光栅位图
内容说明
[格式]ASCII:GS v 0 m xL xH yL yH d1…dk
Hex:1D 76 30 m xL xH yL yH d1…dk
Decimal:29 118 48 m xL xH yL yH d1…dk
[范围]0 ≤ m ≤ 3, 48 ≤ m ≤ 51
0 ≤ xL ≤ 255
0 ≤ xH ≤ 255 ; 在此 1≤(xL+xH×256)≤128
0 ≤ yL ≤ 255
0 ≤ yH ≤ 8 ; 在此 1≤(xL+xH×256)≤4095
0 ≤ d ≤ 255
k = (xL+xH×256) × (yL+yH×256);(k≠0)
[描述]• m,设定光栅位图模式
• xL, xH,设定位图水平方向数据字节数(xL+xH×256)
• yL, yH,设定位图垂直方向数据字节数 (yL+yH×256)
[注释]• 标准模式下,打印缓冲区中有无数据时该命令都有效。
• 对于光栅位图打印,该命令不受打印模式影响(字符大小、粗体、重 叠、颠倒打印下划线、反白打印模式等)。
• 打印区域宽度受限于打印机最小宽度,当打印区域大于最小宽度,则打印区域以外的数据会被读入且被逐点丢弃。
• ESC a (设定对齐方式)设置对于光栅位图也有效。
• d指明位图数据。将要打印的点设定为1,不打印点设定为0。

m 值设定模式如下:(dpi: 每25.4 毫米 {1英寸}打印点数)

m模式垂直点密度水平点密度
0, 48普通203.2dpi203.2dpi
1, 49倍宽203.2dpi101.6dpi
2, 50倍高101.6dpi203.2dpi
3, 51四倍大小101.6dpi101.6dpi

光栅位图指令示例:

• 假设一张水平方向32点、垂直方向32点的图,要求以4倍大小打印,那么就可以得到一张64点*64点图片:
此时需要:m=3,xL=4,xH=0,yL=32,yH=0,dk数据排列如下图

• 格式数据如下:
GS v 0 3D 4D 0D 32D 0D FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH FFH 00H FFH 00H 00H FFH 00H FFH LF LF LF LF
• 转换后十六进制数据如下:
1D76300304002000FF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FFFF00FF0000FF00FF0A0A0A0A

  • GS ( k pL pH cn fn n1 n2 (cn=49,fn=65) 选择QR CODE模式
内容说明
[格式]ASCII:GS ( k pL pH cn fn n1 n2
Hex:1D 28 6B pL pH cn fn n1 n2
Decima:29 40 107 pL pH cn fn n1 n2
[范围](pL+pH×256)=4,(pL=4,pH=0)
cn = 49
fn = 65
n1 = 49, 50
n2 = 0
[描述]• 选择 QR CODE 的模式。
[默认值]n1 = 50,n2 = 0

•  选择 QR CODE 的模式n1说明如下:

n1功能
49选择计算算法为模式 1
50选择计算算法为模式 2
  • GS ( k pL pH cn fn n (cn=49,fn=67) 设置QR CODE模块大小
内容说明
[格式]ASCII:GS ( k pL pH cn fn n
Hex:1D 28 6B pL pH cn fn n
Decima:29 40 107 pL pH cn fn n
[范围](pL+pH×256)=3 (pL=3,pH=0)
cn = 49
fn = 67
1 ≤n≤16
[描述]• 设置 QR CODE 的模块大小n点
[默认值]n = 0
  • GS ( k pL pH cn fn n ( cn=49,fn=69) 设置QR CODE纠错等级
内容说明
[格式]ASCII:GS ( k pL pH cn fn n
Hex:1D 28 6B pL pH cn fn n
Decima:29 40 107 pL pH cn fn n
[范围](pL+pH×256)=3(pL=3,pH=0)
cn = 49
fn = 69
48≤ n ≤ 51
[描述]• 设置 QR CODE 的纠错等级。
[默认值]n=48

•  设置 QR CODE 的纠错等级n如下:

n功能参考:可恢复字码比例
48选择纠错等级 L7%
49选择纠错等级 M15%
50选择纠错等级 Q25%
51选择纠错等级 R30%
  • GS ( k pL pH cn fn m d1..dk ( cn=49,fn=80) 存贮QR CODE数据到符号存贮区
内容说明
[格式]ASCII:GS ( k pL pH cn fn m d1..dk
Hex:1D 28 6B pL pH cn fn m d1..dk
Decima:29 40 107 pL pH cn fn m d1..dk
[范围]4 ≤(pL + pH ×256) ≤ 7092 (0 ≤pL≤255 , 0≤pH ≤27 )
cn = 49
fn = 80
m = 48
0 ≤ d ≤ 255
K = (pL + pH × 256) – 3
[描述]• 存贮 QR CODE 的符号数据(d1..dk)到符号存贮区。
  • GS ( k pL pH cn fn m ( cn=49,fn=81) 打印QR CODE在符号存贮区的符号数据
内容说明
[格式]ASCII:GS ( k pL pH cn fn m
Hex:1D 28 6B pL pH cn fn m
Decima:29 40 107 pL pH cn fn m
[范围](pL+pH×256)=3 (pL=3 ,pH=0)
cn = 49
fn = 81
m = 48
[描述]• 编码并打印用 GS ( k (fn=80) 存贮在符号存贮区的 QR CODE 符号数据。
[注释]• 使用者必须留出打印 QR CODE 的足够的安全空白区域(包括由 QR CODE 符号规范中定义的上下、左右边空)。