国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > android 控制POS机图文打印(一)

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

来源:程序员人生   发布时间:2014-12-17 08:35:41 阅读次数:4742次

由于公司业务的需要,要用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行。ESC2ESC3指令可设定行距的长短。

如果行编辑缓存空,则只按当前设定的行距向前走纸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个半点距。

默许值n0

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    下划线    取消    设定

默许值n0

ESC % n                          允许/制止用户自定义字符

格式:  ASCII: ESC  %  n

    10进制: 27  37 n

   106进制: 1B  25 n

说明:

参数n为1个字节,只有最低位有效。

n=<*******1B时,选择用户自定义字符集;

n=<*******0B时,选择内部字符集。

0≤n≤255,默许值n0

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:字符的纵向字节数。这里取 y12

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    …    dy×x×m-n+1

d2    d4    …    dy×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    D1D2 … Dk

     10进制: 27   42   m  n1  n2    D1D2 … Dk

    106进制: 1B   2A   m  n1  n2    D1D2 … Dk

说明:

该命令用来设置点阵图形模式(m)和横向图形点阵。

m = 01 表示打印密度。

0≤n1≤2550≤n2≤10≤Dk≤255k= n1+ n2×256

n1n2为两位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英寸。

n1 - 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

nLSB位是0,取消侧重模式。

nLSB位是1,设置侧重模式。

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

格式:  ASCII: ESC  G  NUL

    10进制: 27   71   0

   106进制: 1B  47   0

说明:

0 ≤ n ≤ 255

nLSB位是0,取消堆叠模式。

nLSB位是1,设置堆叠模式。

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

格式:  ASCII: ESC   J  n

    10进制: 27   74   n

   106进制: 1B  4A   n

说明:

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

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

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

说明:

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

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

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

默许值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    对齐模式

048    左对齐

149    中对齐

250    右对齐

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=<*******1B时,纸检测器检测到缺纸时停止打印。

n=<*******0B时,纸检测器检测到缺纸时不停止打印,以便用户可以将最后1张单据打印至页底。

默许值n=1

ESC c 5 n                             允许/制止走纸按键

格式:  ASCII: ESC   c   3   n

    10进制:  27   99 33   n

   106进制:  1B   63 35   n

说明:

n=<*******1B时,制止纸按键。

n=<*******0B时,允许纸按键(默许值)

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

说明:

产生钱箱驱动脉冲。

m0,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 = 048,黑色打印

n = 149,红色打印

默许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

nLSB位是0,取消倒向打印模式。

nLSB位是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码(20H9FH)时,将打印出相应的5 ×77×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 生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生

------分隔线----------------------------
分享到:
------分隔线----------------------------
为码而活
积分:4237
15粉丝
7关注
栏目热点
关闭
程序员人生