高分求助关于ESC/POS命令的使用

如题所述

高分求助关于ESC/POS命令的使用

一定要采纳啊!!

ESC/POS命令集

切纸指令:

发送:十六进制:1B69

4.1 基本控制指令

4.1.1 ESC @

[名称]   初始化打印机

[格式]    ASCII码   ESC @

十六进制码     1B 40

十进制码      27 64

[描述]   清除打印缓冲区中的数据,复位打印机打印参数到当打印机缺省参数。

[注意]    不是完全恢复到出厂设置,用户参数设置(见三、JPM112打印机工具软件)不会被更改。

[例子]   char SendStr[3];

SendStr[0] = 0x1B

SendStr[1] = 0x40;

PrtSendData(SendStr, 2);

4.1.2 FF

[名称]   打印并走纸到下页首

[格式]    ASCII码   FF

14/53

----------------------- 16-----------------------

用户文档 JPM112 打印机开发手册(V1.0 )

十六进制码       0C

十进制码       12

[描述]   将打印缓冲区中的数据全部打印出来并返回标准模式。

[注意]    打印后,删除打印缓冲区中的数据。

该命令设置打印位置为行的起始点。

如果打印纸有预印刷黑标,则打印缓冲区中的数据后,走纸到黑标处,如果打印纸无黑标,则

走纸0.5m后停止,预印刷黑标的规范请见附录B.预印刷黑标说明。

[例子]   char SendStr[2];

SendStr[0] = 0x0C;

PrtSendData( SendStr, 1);

4.1.3 LF

[名称]   打印并换行

[格式]   ASCII码     LF

十六进制码       0A

十进制码       10

[描述]   把打印缓冲区中的数据打印出来,并换行。

[注意]    该命令把打印位置设置为行的开始位置。

[参考]   CR

[例子]   char SendStr[2];

SendStr[0]=’\n’; //C语言中’\n’即为换行

PrtSendData( SendStr, 1);

4.1.4 CR

[名称]   打印并回车

[格式]    ASCII码    CR

十六进制码       0D

十进制码       13

[描述]   打印但不进纸。

[注意]    打印结束后,将下一行的开始设定为打印起始位置。

[参考]   LF

[例子]   char SendStr[2];

SendStr[0]=’\r’; //C语言中’\r’即为回车

PrtSendData(SendStr,1);

15/53

----------------------- 17-----------------------

用户文档      JPM112 打印机开发手册(V1.0 )

4.1.5 ESC J n

[名称]   打印并进纸

[格式]    ASCII码     ESC J n

十六进制码       1B 4A n

十进制码        27 74 n

[范围]    0 ≤ n ≤ 255

[描述]   打印输出打印缓冲区中的数据,并进纸n个 垂直点距。

[注意]    打印结束后,将下一行的开始设定为打印起始位置。

一个垂直点距为0.33mm,以下同。

[参考]   ESC d

[例子]   char SendStr[4];

 SendStr[0] = 0x1B;

SendStr[1] = ’J’;

SendStr[2] = 3;

PrtSendData( SendStr, 3);//走纸1mm

4.1.6 ESC d n

[名称]   打印并进纸n 行

[格式]    ASCII码     ESC d   n

十六进制码   1B 64 n

十进制码        27 100 n

[范围]    0 ≤ n ≤ 255

[描述]   打印打印缓冲区中的数据并进纸n字符行。

[注意]    该命令设置打印起始位置为行起点。

[参考]   ESC J

[例子]   char SendStr[4];

 SendStr[0] = 0x1B;

SendStr[1] = ’d’;

SendStr[2] = 2;

PrtSendData( SendStr, 3);//走纸2行

4.1.7 HT

[名称]   移动打印位置到下一个水平制表位置

[格式]   ASCII码      HT

十六进制码       09

十进制码        9

[描述]   移动打印位置到下一个水平制表位置。

16/53

----------------------- 18-----------------------

用户文档       JPM112 打印机开发手册(V1.0 )

[注意]    通过ESC D命令设置水平制表位的位置。

如果没有设置下一个水平制表位置,则该命令被忽略。

水平定位位置的缺省设定为字符A(6×12)的8个字符宽度(第9,17,25, … 列)。

[参照]   ESC D

[例子]   char NextPos = 9;

PrtSendData(“商品名”,6);

 PrtSendData(NextPos,1);

PrtSendData(“单价”,4);

 PrtSendData(NextPos,1);

PrtSendData(“数量”,4);

 PrtSendData(NextPos,1);

PrtSendData(“金额”,4);

4.1.8 FS U nL nH

[名称]   按Unicode编码向打印发送数据

[格式]   ASCII码       FS U nL nH

十六进制码        1C 55 nL nH

十进制码         28 85 nL nH

[描述]   打印n(n=nLnH256)个Unicode编码字符。

[注意]    因Unicode是双字节编码,此命令后的2n(n=nLnH256)个字节被当作Unicode编码字符处理;

该指令中输入的汉字只支持GBK字库中包含的汉字,没有包含Unicode中所包含的所有汉字;

有关GBK的详细信息请参阅全国信息技术标准化技术委员会制定的 “汉字内码扩展规范”;

有关Unicode的详细信息可以参见Unicode的官方网站;

本命令不受汉字命令的影响,也不受自定义字符命令的影响;

本命令可以嵌入其他ESC/GS/FS指令,但要采用Unicode编码。

[例子]   char SendStr[64];

 SendStr[0]=0x1C; SendStr[1]=’U’; SendStr[2]=11; SendStr[3]=0;

SendStr[4]=0x55; SendStr[5]=0x00; //U0055:’U’

SendStr[6]=0x4E; SendStr[7]=0x00; //U004E:’N’

SendStr[8]=0x49; SendStr[9]=0x00; //U0049:’I’

SendStr[10]=0x43; SendStr[11]=0x00; //U0043:’C’

SendStr[12]=0x4F; SendStr[13]=0x00; //U004F:’O’

SendStr[14]=0x44; SendStr[15]=0x00; //U0044:’D’

SendStr[16]=0x45; SendStr[17]=0x00; //U0045:’E’

SendStr[18]=0x53; SendStr[19]=0x62; //U6253:’打’

SendStr[20]=0x70; SendStr[21]=0x53; //U5370:’印’

SendStr[22]=0x4B; SendStr[23]=0x6D; //U6D4B:’测’

SendStr[24]=0xD5; SendStr[25]=0x8B; //U8BD5:’试’

 PrtSendData(SendStr,26);

PrtSendData(“\n”,1);

17/53

----------------------- 19-----------------------

用户文档 JPM112 打印机开发手册(V1.0 )

4.2 字符参数设置命令

4.2.1 ESC ! n

[命令] 选择打印模式

[格式]   ASCII码    ESC ! n

十六进制码   1B 21 n

十进制码       27 33 n

[范围]   0 ≤ n ≤ 255

[描述] 通过指定参数n 的值选择打印模式。参数n 的定义如下:

位     值     意义

0     0     西文字符 (半宽)字体A (6 ×12),汉字字符 (全宽)字体A (12×12)

1     西文字符 (半宽)字体B (8×16),汉字字符 (全宽)字体B (16×16)

1     -     未定义

2     -     未定义

3     0     取消粗体模式

1     设置粗体模式

4     0     取消倍高模式

1     设置倍高模式

5     0     取消倍宽模式

1     设置倍宽模式

6     -     未定义

7     0     取消下划线模式

1     设置下划线模式

[注意] 当同时选择倍高及倍宽模式时,则打印出四倍大小字符。

打印机可以为所有字符加下划线,但不能为由HT命令产生的空白或顺时针旋转90°的字符加下划

线。

当一行中有一些倍高或更高字符时,行中所有字符都沿基线对齐。

ESC M也可设定字体。最后接收到的命令的设定有效。

ESC E也可设定或取消粗体模式。最后接收到的命令的设定有效。

ESC –也可设定或取消下划线模式,最后接收到的命令的设定有效。

GS !也可设定字符大小。最后接收到的命令的设定有效。

本命令对英数字符和汉字都有效。

[缺省值] n = 0

[参照] ESC -, ESC E, GS !, ESC M

[例子] char SendStr[4];

SendStr[0] = 0x1B;

SendStr[1] = ’!’;

SendStr[2] = 0x28;// 00101000 倍宽粗体

PrtSendData( SendStr, 3);

18/53

----------------------- 20-----------------------

用户文档      JPM112 打印机开发手册(V1.0 )

4.2.2 GS ! n

[名称]   放大字符

[格式]    ASCII码     GS ! n

十六进制码        1D 21 n

十进制码         29 33 n

[范围]    0 ≤ n ≤ 255 (1 ≤垂直倍数≤ 2, 1 ≤ 水平倍数≤ 2)

[描述]   用位0~3位选择字符高度,用位4~7位选择字符宽度,如下所示:

0 1 2   3 高度            4 5   6 7 宽度

0 0 0   0 1倍            0 0   0 0 1倍

1 0 0   0 2倍            1 0   0 0 2倍

[注意]    该命令对所有字符(英数字符和汉字) 有效。

如果n 在定义范围之外,忽略该命令。

垂直方向是指进纸方向,水平方向与进纸方向垂直。然而,当字符方向顺时针旋转90°后,垂直

方向与水平方向之间的关系颠倒,也就是说本命令优先级低于于ESC V,当两个命令同时有效时,

字符显示是先旋转,再放大。

当字符以不同的尺寸在一行中放大时,一行中所有的字符沿基线对齐。

用ESC ! 命令也可以设置字符大小。以最后接收到的命令设置当前模式。

[缺省值] n = 0

[参考]   ESC !

[例子]   char SendStr[4];

 SendStr[0] = 0x1D;

SendStr[1] = ’!’;

SendStr[2] = 0x01;// 00000001 倍高

 PrtSendData( SendStr, 3);

4.2.3 ESC M n

[名称]   选择字符字体

[格式]    ASCII码     ESC M n

十六进制码        1B 4D n

十进制码         27 77 n

[范围]   n = 0, 1, 16, 17,18,19

[描述]   选择字符字体。

N(十进制)      意义

0           西文字符 (半宽)字体(6×12)  

1           西文字符 (半宽)字体(8×16)  

16          简体汉字字符字体12×12

19/53

----------------------- 21-----------------------

用户文档       JPM112 打印机开发手册(V1.0 )

17           简体汉字字符字体16×16

18           BIG5汉字字符字体12×12

19           BIG5汉字字符字体16×16

[注意]     ESC !也可设定字体。最后接收到的命令的设定有效。

当使用该命令设定字体时。可以分别设定西文字体和汉字字体,而且互不影响。

[参考]    ESC !

[例子]    char SendStr[8];

 SendStr[0]=0x1B;

SendStr[1]=’M’;

SendStr[2]=0;// 西文6×12

 SendStr[0]=0x1B;

SendStr[1]=’M’;

SendStr[2]=0x11;// 简体中文16×16

PrtSendData( SendStr, 6);//以后打印的中文字体为16×16,西文为6×12

4.2.4 ESC – n

[名称]    设置/取消下划线

[格式]    ASCII码     ESC – n

十六进制码       1B 2D n

十进制码        27 45 n

[范围]    0 ≤ n ≤ 2

[描述]   基于以下的n值,设定 /解除下划线模式:

n(十进制)       意义

0            解除下划线模式

1            设定下划线模式(1 点粗)

2            设定下划线模式(2 点粗)

[注意] 打印机不能给旋转字符以及反白字符打印下划线。

改变字符大小不影响当前下划线的粗细。

使用ESC !也可以设定或解除下划线模式。最后接收的命令设定有效。

该命令对英文和汉字字符都有效。

[缺省值] n = 0

[参照]    ESC !

[例子]    char SendStr[3];

 SendStr[0] = 0x1B;

SendStr[1] = ’-’;

SendStr[2] = 1;//单行下划线

 PrtSendData( SendStr, 3);

20/53

----------------------- 22-----------------------

用户文档      JPM112 打印机开发手册(V1.0 )

4.2.5 ESC E n

[名称]   设定/解除粗体打印

[格式]    ASCII码     ESC E n

十六进制码       1B 45 n

十进制码        27 69 n

[范围]    0 ≤ n ≤ 255

[描述]   设定或解除粗体打印模式。

当n 的最低位(LSB)为0时,解除粗体打印模式。

 当n 的最低位(LSB)为1时,设定粗体打印模式。

[注意]    仅n 的最低有效位允许使用。

使用ESC !也可以设置或取消粗体模式。最后接收的命令设定有效。

[缺省值] n = 0

[参照]   ESC !, ESC G

[例子]   char SendStr[3];

 SendStr[0] = 0x1B;

SendStr[1] = ’E’;

SendStr[2] = 1;//粗体

 PrtSendData(SendStr,3);

4.2.6 ESC G n

[名称]   设定/解除重叠打印

[格式]    ASCII码     ESC G n

十六进制码       1B 47 n

十进制码        27 71 n

[范围]    0 ≤ n ≤ 255

[描述]   设定或解除重叠打印模式。

当n 的最低有效位(LSB)为0时,解除重叠打印模式。

 当n 的最低有效位(LSB)为1时,设定重叠打印模式。

[注意]    仅n 的最低有效位允许使用。

在重叠模式和粗体模式中打印机输出是相同的。

[缺省值] n = 0

[参照]   ESC E, ESC !

[例子]   char SendStr[3];

 SendStr[0] = 0x1B;

SendStr[1] = ’G’;

SendStr[2] = 1;//重叠

 PrtSendData( SendStr, 3);

21/53

----------------------- 23-----------------------

用户文档   JPM112 打印机开发手册(V1.0 )

4.2.7 GS B n

[名称]   设定/解除反白打印模式

[格式]   ASCII码    GS B n

十六进制码      1D 42 n

十进制码       29 66 n

[范围]   0 ≤ n ≤ 255

[描述]   设定或解除反白打印模式。

当n 的最低有效位为0时,关闭反白模式。

当n 的最低有效位为1时,打开反白模式。

[注意]    仅n 的最低位有效。

该命令对内置字符和用户自定义字符均有效。

反白模式打开时,它对ESC SP设定的空白也有效。

该命令不影响位图,用户自定义位图,条形码,条码显示字符和由HT, ESC $, 及ESC \ 跳过的

间距。

反白模式优先于下划线模式。选择反白模式时,即使下划线模式打开也被禁止(但不取消)。

[缺省值] n = 0

[例子]   char SendStr[3];

SendStr[0] = 0x1D;

SendStr[1] = ’B’;

SendStr[2] = 1;//反白

PrtSendData( SendStr, 3);

4.2.8 ESC V n OK

[名称]   设置/解除字符旋转模式

[格式]   ASCII码    ESC V n

十六进制码     1B 56 n

十进制码      27 86 n

[范围]   0 ≤ n ≤ 3

[描述]   设置/解除字符旋转模式

N (十进制) 意义

0         解除旋转模式

1         设置90°顺时针旋转模式

2         设置180°顺时针旋转模式

3         设置270°顺时针旋转模式

[注意]    当设置了下划线模式时,对于顺时针90°旋转的字符,打印机不加下划线。

在 旋转模式下,倍宽和倍高命令放大字符的方向与一般模式下倍高倍宽命令放大字符的方向相

反。

[缺省值] n = 0

22/53

----------------------- 24-----------------------

用户文档      JPM112 打印机开发手册(V1.0 )

[参照]   ESC !, ESC –

[例子]   char SendStr[3];

 SendStr[0] = 0x1B;

SendStr[1] = ’V’;

SendStr[2] = 2;//旋转180度

 PrtSendData( SendStr, 3);

4.3 打印排版参数设置命令

4.3.1 ESC $ nL nH

[名称]   设置绝对打印位置

[格式]    ASCII码     ESC $ nL nH

十六进制码        1B 24 nL nH

 十进制码         27 36 nL nH

[范围]    0 ≤ nL ≤ 255

 0 ≤ nH ≤ 255

[描述]   设定从一行的开始到将要打印字符的位置之间的距离。

从一行的开始到打印位置的距离为N个水平点距。

nL nH是双字节无符号整数N的低位和高位,N=nL nH × 256

[注意]    如果设定的打印位置超出了可打印区域(N244),则被设置为可打印区域的最大值 (N=244)。

[参照]   ESC \

[例子]   char SendStr[4];

 SendStr[0] = 0x1B;

 SendStr[1] = ’$’;

 SendStr[2] = 15;//0.2×15=3

 PrtSendData( SendStr, 3);      //绝对位置设为距左边界3毫米(15水平点距)

 PrtSendData( “从左侧3毫米处开始打印\n”, 22);

4.3.2 ESC D n1 n2…nk NULL

[名称]   设置水平制表位

[格式]    ASCII码     ESC D n1…nk NULL

 十六进制码       1B 44 n1…nk 00

 十进制码        27 68 n1…nk 0

[范围]    1 ≤ n ≤ 255 0 ≤ k ≤ 8

[描述]   设置水平定位位置。

n 指定从一行开始的列号,用来设置水平定位位置。

 k 表示将被设置水平定位点的总数。

[注意]    水平制表位置作为一个值储存,这个值为n个西文字符宽度,是从行的开始测量的。字符宽度包

一定要采纳啊!!

POS机怎么用

pos机使用前先打开电源键,把卡磁条的部分向左下从前往后刷,之后输入消费的金额进行密码确认即可完成交易,具体内容如下:

1、打开pos机电源,输入操作号和相应密码。

2、输入完毕来到pos机刷卡界面。

3、按“确认”后,输入“1”选择消费。

4、输入消费金额后,再按“确认”。就会来到“请插卡或刷卡或挥卡”界面。

5、先操作刷磁条卡。把银行卡有磁条的一面面向pos机,然后放入pos机右边的槽内,从上往下拉动银行卡。

6、随后,pos机便会读出银行卡的,无误后按“确认”。

7、输入密码再按“确认”,随后便是在pos机上签名,等待pos机出完纸后便完成交易了。

注意事项:

1、不要只刷信用卡,偶然也要刷借记卡,信用卡和借记卡需要交替使用,时不时的刷一下借记卡消费一下。

2、从理论上来说,同一张信用卡不要在同在一台机器上延续刷卡超过3个月,满3个月可以适当的暂停,过两个月再回来刷,当然如果你使用的是卡呗生活的落地POS机,可以选择无视,自选落地商户,合理规划消费。

3、不要把刷卡小票丧失,小票保存,活期扫描留底,以备不时之需。

4、信用卡额度超越1W,消费时建议每笔刷卡控制在60%以内。

怎么使用pos机?

1.注册平台用户,绑定银行卡。根据我们个人需求选定好网络pos机平台后,我们首先要根据平台要求注册用户,绑定我们的信用卡,不多赘述。普及一下,整个平台的整个操作规程是采取登录--付款--支付公司收款--结算--转款到账来进行的。2.登入平台系统。我们输入该平台网址,登录系统,看到如图所示,继续输入用户名和密码进入。

3.进行结算管理。我们从登入页面栏所显示“交易管理”、“结算管理”、“我的信息”、“下级客户管理”中选取“结算管理”点击进入,如图所示,并继续选取一种第三方支付公司通道,点取进行充值。

4.进行支付管理。在付款页面里,我们输入付款金额,如“52元”,选取一个支付银行,如图所示,点击下一步,页面跳转入该银行网银支付页面。

5.申请结算。我们在网银页面操作完成后,即可返回平台进入未结算款项栏点取申请结算,整个操作过程就完成了。一般各网络pos机平台采取是T0模式,即时到账,非常方便。

请问POS机预授权的功能怎么用

以下是使用POS机预授权的功能的步骤:

1、接过客人卡,核对客人相关信息,银行卡有效期等;

2、刷卡,选择“预授权”命令,根据提示输入所需押金数额,让客人输入正确的密码;

3、打印出预授权单,注明房号并让客人签字;

4、核对签名模式,把客人联和客人卡归还客人;

5、把授权单放入相应账袋中。

支付通pos机怎么用

第一步:下载支付通Qpos并登录,点击“我”,接着点击“设备管理”,选择和支付通pos相同的型号即可。

第二步:按下电源支付通pos电源开关2秒钟,在“刷卡器设置”中选择“蓝牙模式”,等待系统搜索到绑定的支付通pos后,输入设备PIN。

第三步:输入金额后刷卡,等待屏幕亮起,将银行卡右下角(磁条端)放在支付通pos刷卡槽左端,让银行卡和刷卡槽充分接触。

第四步:刷卡成功后会听到“滴”,屏幕中会显示,确认无误后,按下“确认”键。

第五步:持卡人在支付通pos上输入银行卡密码,密码确认无误后,按下“确认”键。撕下交易凭证,由持卡人签名,留下商户存根即可。

如果蓝牙连接Qpos时提示:终端类型与系统不符,则用户需要确认当前连接的机器机身号是否为与商户绑定一致的机器,并检查Qpos是否为最新版本,确保蓝牙连接时选择的机器外观相同。

支付通POS具有快速到账、占有率高、激活有礼、支持多卡种、一清等特点。支付通POS是一清机,持有中国人民银行颁发支付业务许可证。

版本信息:以支付通Qpos5.3.0版本、苹果13(IOS15.4.1系统)、华为mate40(HarmonyOS2系统)为例。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网