资讯详情

android 控制POS机图文打印(一)

由于公司业务的需要,需要使用android客户端控制pos机器打印票据不仅是中文的,还有二维码的打印!经过两天的努力!终于完成了!!!我真的!

首先,先奉上ESC/POS指令集。

EPSON打印控制指令集

打印命令                    功能

格式:  ASCII: 以标准ASCII字符序列表示

十进制: 以十进制数字序列表示

十六进制: 以十六进制数字序列表示

说明:该命令功能和使用说明。

HT 水平制表

格式:  ASCII: HT

十进制: 09

十六进制: 09

说明:

在下一水平制表位置打印位置。

如果当前打印位置超过最后一个水平制表位置,HT不执行命令。

水平制表位置由 ESC D命令设置。

LF 打印并换行

格式:  ASCII: LF

十进制: 10

十六进制: 0A

说明:

打印存储在行编辑缓存中的一行数据,并按照当前设定的行距向前走。ESC2,ESC3指令可以设置行距的长度。

如果行编辑缓存是空的,当前设定的行距向前走。

CR 打印回车

格式:  ASCII: CR

十进制: 13

十六进制: 0D

说明:

在行编辑缓存中打印一行数据时,不进行走纸操作。

DLE EOT n 实时状态传输

格式:  ASCII: DLE EOT n

十进制: 16 04 n

十六进制: 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

    十进制: 16 05 n

   十六进制: 10 5

说明:

n = 0, n = 2

打印机对主机请求作出反应,n值定义如下:

n = 0: 恢复到联机状态

n = 2: 清除接收和打印缓冲区,并恢复错误.

ESC SP n                             设置字符右间距

格式:  ASCII: ESC  SP n

    十进制: 27  32 n

   十六进制: 1B  20 n

说明:

以半点为设定单位(1/144英寸),设置字符右边间距为n个半点距。

默认值n=0。

ESC ! n                             设置字符打印方式

格式:  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 % n                         允许/禁止用户自定义字符

格式:  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 & 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

    十进制: 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 - n                            设置/取消下划线模式

格式:  ASCII: ESC  -  n 

    十进制: 27   45   n 

   十六进制: 1B   2D   n 

说明:

n = 0, 1, 48, 49

n = 0 or 48,取消下划线模式。

n = 1 or 49, 设置下划线模式。

ESC 2                               设定1/6英寸换行量

格式:  ASCII: ESC  2

    十进制: 27  50

   十六进制: 1B  32

说明:

此指令将打印机的换行量设定为1/6英寸。

ESC 3  n                            设定 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 = n                              设备设置/取消

格式:  ASCII: ESC  =  n 

    十进制: 27   61   n 

   十六进制: 1B   3D   n 

说明:

1 ≤ n ≤ 3

默认 n = 1

位    功能    值

       0    1

0    打印机选择    取消    设定

1    顾显选择    取消    设定

2    无定义        

3    无定义        

4    无定义        

5    无定义        

6    无定义        

7    无定义        

ESC ? n                          取消用户自定义字符

格式:  ASCII: ESC ?  n 

    十进制: 27   63   n 

   十六进制: 1B   3F   n 

说明:

32 ≤ n ≤ 126

ESC @                               初始化打印机

格式:  ASCII: ESC @

    十进制: 27  64

   十六进制: 1B  40

说明:

该命令初始化打印机:使打印机恢复到最初的联机状态,清除以前留下的程序。

ESC D NULL                         消除所有的水平制表位置

格式:  ASCII: ESC  D  NULL

    十进制: 27   68   0

   十六进制: 1B  44   0

说明:

ESC D NUL命令消除所有的水平制表位置,之后再执行的HT命令将无效。

ESC E n                               设置/取消着重模式

格式:  ASCII: ESC  E  NUL

    十进制: 27   69   0

   十六进制: 1B  45   0

说明:

0 ≤ n ≤ 255

当n的LSB位是0,取消着重模式。

当n的LSB位是1,设置着重模式。

ESC G n                               设置/取消重叠模式

格式:  ASCII: ESC  G  NUL

    十进制: 27   71   0

   十六进制: 1B  47   0

说明:

0 ≤ n ≤ 255

当n的LSB位是0,取消重叠模式。

当n的LSB位是1,设置重叠模式。

ESC J n                              执行n/144英寸走纸

格式:  ASCII: ESC   J  n

    十进制: 27   74   n

   十六进制: 1B  4A   n

说明:

进纸n/144英寸,n值应为0到255之间的任意值。

若当时有打印内容则在打印完成后执行走纸。

ESC K n                              打印并反向走纸

格式:  ASCII: ESC   K  n

    十进制: 27   75   n

   十六进制: 1B  4B   n

说明:

0 ≤ n ≤ 48

打印缓冲区里的内容,并反方向走纸n/144英寸(n X 0.176 mm)。

ESC R n                              选择国际字符集

格式:  ASCII: ESC  R  n

    十进制: 27   82 n

   十六进制: 1B  52 n

说明:

ESC R用于选择11个不同国家的不同ASCII字符集。

n=0~10。默认值为0,选择U.S.A方式。

ESC U n                                 设置/取消单向打印

格式:  ASCII: ESC  U  n

    十进制: 27   85 n

   十六进制: 1B  55 n

说明:

设置/取消单向打印。n=0~255,仅最低位有效。

当n=<×××××××1>B时,在字符方式下设置为准双向打印,在图形方式下设置为单向打印。

当n=<×××××××0>B时,设置双向打印。

默认值n=0。

ESC a n                                    选择对齐模式

格式:  ASCII: ESC  a  n

    十进制: 27   97 n

   十六进制: 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

    十进制: 27   99   51   n

   十六进制: 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

    十进制: 27   99   52   n

   十六进制: 1B   63   34   n

说明:

设置/取消纸检测器检测到缺纸时停止打印。

N=0~255,仅最低位有�

标签: 黑标传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台