本插件适用于商米设备调用商米打印机
注意:
本插件适用于带打印机的所有商米机器及商米58热敏票据打印机
插件使用
//连接商米一体机(如V1、V2、T1、T2等等),通过如下方式
var sunmi_print = api.require('sunmiPrinterInner')
//连接商米自助终端(如K1、H1等等),通过如下方式
var sunmi_print = api.require('sunmiPrinterSelf')
//连接商米58热敏票据打印机(小黑盒),通过如下方式
var sunmi_print = api.require('sunmiPrinterOutter')
初始化打印机方法和释放方法
//使用前连接打印机
sunmi_print.connect(function(ret, err) {
if(ret.connect == "hello"){
alert("打印机连接")
}else{
alert("打印机未连接")
}
});
//使用后断开打印机
sunmi_print.disconnect()
连接打印机
connect(callback(ret, err))
ret:
{
connect: //字符串类型;连接结果
//hello 打印机连接
//bye 打印机断开
//unknown 无打印机
}
var printer = api.require('sunmiPrinterInner');
printer.connect(function(ret, err) {
alert(ret.connect)
});
Android系统
可提供的1.0.0及更高版本
断开打印机
disconnect()
var printer = api.require('sunmiPrinterInner');
printer.disconnect();
Android系统
可提供的1.0.0及更高版本
获取打印机状态
getPrinterStatus(callback(ret, err))
ret:
{
status: //字符串类型;打印机的实时状态
//offline 打印机离线
//running 打印机正常
//fault 打印机故障
//outpaper 打印机缺纸
//hot 打印机过热
//open 打印机开盖(58打印机不支持)
//error 打印机未知错误
}
var printer = api.require('sunmiPrinterInner');
printer.getPrinterStatus(function(ret, err) {
alert(ret.status)
});
Android系统
可提供的1.0.0及更高版本
打印机初始化
printInit()
var printer = api.require('sunmiPrinterInner');
printer.printInit();
Android系统
可提供的1.0.0及更高版本
可通过自检页查看打印效果、打印机信息
printSelfCheck()
var printer = api.require('sunmiPrinterInner');
printer.printSelfCheck();
商米自助打印机和58热敏打印机不支持打印自检页
Android系统
可提供的1.0.0及更高版本
接收ESC指令内容并执行打印(参考ESC指令)
printRawData([arrays])
var printer = api.require('sunmiPrinterInner');
//主动初始化打印机
printer.printInit()
//打印一张自检页
printer.printSelfCheck()
//设置加粗指令,之后的文本内容会加粗
var cmd1 = [0x1b, 0x45, 0x01]
//设置行高指令,之后的文本内容行间距改变
var cmd2 = [0x1b, 0x33, 0x00]
//打印12345678
var data = [0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x0a]
printer.printRawData(cmd1);
printer.printRawData(cmd2);
printer.printRawData(data)
printer.printRawData(data);
Android系统
可提供的1.0.0及更高版本
打印富含样式的文本内容
printText({params})
text
align
size
bold
underline
compact
skip
var printer = api.require('sunmiPrinterInner');
printer.printText({
text:"商米打印测试",
align:1,
size:30,
bold:true,
underline:true,
compact:true,
skip:true
})
printer.printText({
text:"商米打印测试",
align:2,
size:12,
compact:true,
skip:true
})
Android系统
可提供的1.0.0及更高版本
按列打印文本内容
printColumnsText({params})
texts
lengths
aligns
bold
var = api.require('sunmiPrinterInner');
//按列打印一行简单的内容,每列分别居左、居中、居右
printer.printColumnsText({
texts:["一", "二二", "三三三"],
lengths:[10, 10, 10],
aligns:[0, 1, 2]
})
//左右两列打印商品列表
printer.printColumnsText({
texts:["商品", "价格"],
lengths:[15, 15],
aligns:[0, 2],
bold:true
})
printer.printColumnsText({
texts:["汉堡", "15元"],
lengths:[15, 15],
aligns:[0, 2],
})
printer.printColumnsText({
texts:["可乐", "8元"],
lengths:[15, 15],
aligns:[0, 2],
})
0.本接口将按列打印文本内容,方便打印出特殊排版格式的文本,为了排版固定本接口只能打印默认字体大小的文本,不能改变字体大小
1.各个数组的长度必须一致否则将打印失败
2.字符数量lengths表示ascii码的数量,中文汉字占两个ascii码
3.58mm的打印纸lengths和不超过30,80mm的lengths和不超过46
Android系统
可提供的1.0.0及更高版本
打印条码内容
printBarCode({params})
text
symbology
height
width
hri
align
var printer = api.require('sunmiPrinterInner');
printer.printBarCode({
text:"1234567890",
symbolgy:8,
height:100,
width:3,
hri:0,
align:1
})
symbology说明 0 UPC-A编码 1 UPC-E编码 2 EAN13编码 3 EAN8编码 4 CODE39编码 5 ITF编码 6 CODABAR编码 7 CODE93编码 8 CODE128编码
注意Code128分三种类型:
A类:包含⼤写字⺟、数字、标点等;
B类:⼤⼩写字⺟,数字;
C类:纯数字,复数字符,若为单数位,最后⼀个将忽略;
接⼝默认使⽤B类编码,若要使⽤A类、C类编码需在内容前⾯加“{A”、“{C”
例如:
默认B类 “1234567”
使用A类 “{A2344A”
使用C类 “{C123123”
混合使用 ”{A1A{B13B{C12”
Android系统
可提供的1.0.0及更高版本
打印二维码码内容
printQrCode({params})
text
size
errorlevel
align
var printer = api.require('sunmiPrinterInner');
printer.printQrCode({
text:"1234567890",
size:5,
errorlevel:0,
align:1
})
Android系统
可提供的1.0.0及更高版本
打印富含样式的文本内容
printBitmap({params})
path
url
align
var printer = api.require('sunmiPrinterInner');
//打印本地存储的图片logo
printer.printBitmap({
path:"/image/logo.png",
align:1
})
//打印网络端的图片logo
printer.printBitmap({
url:"http://img.pconline.com.cn/images/upload/upc/tx/itbbs/1607/06/c3/23806812_1467754402821_1024x1024.jpg",
align:1
})
Android系统
可提供的1.0.0及更高版本
切刀切纸
cutPaper()
var printer = api.require('sunmiPrinterInner');
printer.cutPaper()
一般仅支持带切刀的80打印机而58打印机不带切刀
Android系统
可提供的1.0.0及更高版本