escPrinter

插件概述

该插件封装了基于esc指令集的小票打印功能,通过蓝牙连接打印机发送打印数据打印小票

注意事项

使用该模块前需要打开蓝牙,申请蓝牙相关权限

插件接口

search

搜索蓝牙设备

search()

示例代码

var escPrinter = api.require("escPrinter");
escPrinter.search();

可用性

Android、iOS系统系统

可提供的1.0.0及更高版本

getScanResult

获取搜索到的蓝牙设备,

getScanResult(callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   devices:[{mac:'',name:'',rssi:''}],                   //JSON数组;注意iOS端系统屏蔽了mac地址,如果要获取mac地址需要跟蓝牙硬件工程师共同确定通过manufacturerData获取,iOS端返回的是uuid,可通过此uuid连接打印机
}

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.getScanResult(function(ret) {
      alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

addEventListener

事件监听

addEventListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   eventType: 'Conneced',   //字符串类型;事件类型
}

eventType取值范围:

  • ScanStarted 开始搜索
  • Scanning 正在搜索
  • ScanFinished 搜索结束,注意:iOS端不会自动停止,需要调用stopSearch接口,连接成功后即可调用stopSearch接口
  • Conneced, 蓝牙打印机连接成功
  • Disconnect 蓝牙打印机断开连接

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.addEventListener(function(ret) {
      alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

connectPrinter

通过蓝牙连接打印机 (连接成功与否可在 addEventListener 回调事件中获取)

connectPrinter({params})

##params

macAddress:

  • 类型:字符串类型
  • 描述:要连接的蓝牙打印机的mac地址
  • 注意:iOS端是通过getScanResult接口获取的uuid(mac)

示例代码

var escPrinter = api.require("escPrinter");
escPrinter.connectPrinter({
    macAddress:'DC:0D:30:95:57:66'
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

closeConnect

断开蓝牙连接打印机,页面页面关闭时需要先断开连接 (断开成功与否可在 addEventListener 回调事件中获取)

closeConnect()

示例代码

var escPrinter = api.require("escPrinter");
escPrinter.closeConnect();

可用性

Android、iOS系统

可提供的1.0.0及更高版本

getPrinterState

查询打印机状态

getPrinterState(callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   code:0// -1:状态获取失败;0:状态正常;-2:缺纸;-3:开盖;-4:打印机过热
}

示例代码

var escPrinter = api.require("escPrinter");
escPrinter.getPrinterState(function(ret){
    console.log("state: " + JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

InitializePrinter

打印机初始化

InitializePrinter()

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.InitializePrinter();

可用性

Android、iOS系统

可提供的1.0.0及更高版本

SelectJustification

设置对齐方式; 左 中 右对齐

SelectJustification({params})

##params

justification:

  • 类型:数字类型
  • 描述:对齐方式; 0:左对齐; 1:居中对齐; 2:右对齐。
  • 默认值:0

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.SelectJustification({justification:1})

可用性

Android、iOS系统

可提供的1.0.0及更高版本

SetCharcterSize

设置字符放大倍数

SetCharcterSize({params})

##params

charctersize:

  • 类型:数字类型
  • 描述:字符放大倍数;取值范围1~8;
  • 默认值:1

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.SetCharcterSize({charctersize:2})

可用性

Android、iOS系统

可提供的1.0.0及更高版本

TurnEmphasizedModeOnOrOff

是否开启字体加粗

TurnEmphasizedModeOnOrOff({params})

##params

isBold:

  • 类型:布尔类型
  • 描述:是否开启字体加粗
  • 默认值:false

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.TurnEmphasizedModeOnOrOff({isBold:true})

可用性

Android、iOS系统

可提供的1.0.0及更高版本

addText

添加打印文字内容

addText({params})

##params

text:

  • 类型:字符串类型
  • 描述:打印文字内容

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.addText({text:"你好\n"});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

addTexts

打印多列文本,最多支持四列

addTexts({params})

##params

paperType:

  • 类型:数字类型
  • 描述:打印纸张宽度,0:打印纸宽58;1:打印纸宽80
  • 默认:0

texts:

  • 类型:字符串数组
  • 描述:打印文字内容

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.addTexts({paperType:0,texts:["菜名", "数量", "金额"]});
escPrinter.addTexts({paperType:0,texts:["82年的快乐肥宅水(去冰)", "2", "9.99"]});
escPrinter.addTexts({paperType:0,texts:["合计:", "1314.00"]});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

PrintAndLineFeed

进纸一行

PrintAndLineFeed()

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.PrintAndLineFeed();

可用性

Android、iOS系统

可提供的1.0.0及更高版本

PrintAndLineFeeds

打印并且走纸多少行

PrintAndLineFeeds({params})

##params

lins:

  • 类型:数字类型
  • 描述:进纸行数
  • 默认:1

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.PrintAndLineFeeds({lins:2});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

drawImage

打印图片;

drawImage({params})

##params

imagePath:

  • 类型:字符串类型
  • 描述:本地图片路径

imageWidth:

  • 类型:数字类型
  • 描述:打印宽度
  • 默认:200
  • 注意:打印在标签上图片的宽度 传入参数为点数, 200dpi打印机 1mm=8dot 若打印图片在200dpi打印机上,需要打印的宽度为20mm 即传入该参数为20*8=160 58打印机最大可以传入参数为 384dot 80打印机为576dot

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.drawImage({imagePath:"widget://image/flower.jpg",imageWidth:250});//打印图片

可用性

Android、iOS系统

可提供的1.0.0及更高版本

addPrintQRCode

打印二维码

addPrintQRCode({params})

##params

qrcode:

  • 类型:字符串类型
  • 描述:二维码内容

moduleSize:

  • 类型:数字类型
  • 描述:单元模块大小
  • 默认:4

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.addPrintQRCode({qrcode:"https://www.baidu.com"});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

addCODE128

打印条码

addCODE128({params})

##params

barcodeWidth:

  • 类型:数字类型
  • 描述:单元宽度
  • 默认:1

barcodeHeight:

  • 类型:数字类型
  • 描述:条码高度
  • 默认:60

barcode:

  • 类型:字符串类型
  • 描述:条码内容

showContent:

  • 类型:布尔类型
  • 描述:条码底部是否显示内容
  • 默认:false

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.addCODE128({
  barcode:'123456789',
  barcodeHeight: 60,
  barcodeWidth: 2
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

addCutPaper

切纸(带切刀打印机才可用)

addCutPaper()

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.addCutPaper();

可用性

Android、iOS系统

可提供的1.0.0及更高版本

addGeneratePlus

开钱箱

addGeneratePlus()

示例代码

var escPrinter = api.require('escPrinter');
escPrinter.addGeneratePlus();

可用性

Android、iOS系统

可提供的1.0.0及更高版本

printer

汇总打印指令打印

printer(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   status:,   //布尔类型;打印数据是否发送成功
   msg:       //status为false时返回打印错误信息
}

示例代码

var escPrinter = api.require("escPrinter");
escPrinter.InitializePrinter();//初始化打印
escPrinter.SelectJustification({justification:1});//设置打印居中
escPrinter.drawImage({imagePath:"widget://image/flower.jpg",imageWidth:250});//打印图片
escPrinter.SetCharcterSize({charctersize:2});//字体放大两倍打印标题
escPrinter.addText({text:"爱情餐厅:\n\n"});
escPrinter.SelectJustification({justification:0});//设置打印居左
escPrinter.addText({text:"520号桌:\n\n"});
escPrinter.SetCharcterSize({charctersize:1});//字体正常
escPrinter.addText({text:"点菜时间 2020-05-20 5:20\n"});
escPrinter.addText({text:"上菜时间 2020-05-20 13:14\n"});
escPrinter.addText({text:"人数:2人 点菜员:新疆包工头\n"});
escPrinter.addText({text:"--------------------------------\n"});
escPrinter.TurnEmphasizedModeOnOrOff({isBold:true});//开启加粗
escPrinter.addTexts({paperType:0,texts:["菜名", "数量", "金额"]});
escPrinter.TurnEmphasizedModeOnOrOff({isBold:false});//关闭加粗
escPrinter.addTexts({paperType:0,texts:["北京烤鸭", "1", "99.99"]});
escPrinter.addTexts({paperType:0,texts:["麻婆豆腐", "1", "39.99"]});
escPrinter.addTexts({paperType:0,texts:["西湖醋鱼", "1", "59.99"]});
escPrinter.addTexts({paperType:0,texts:["辣子鸡", "1", "66.66"]});
escPrinter.addTexts({paperType:0,texts:["清蒸武昌鱼", "1", "88.88"]});
escPrinter.addTexts({paperType:0,texts:["老干妈拌饭(加辣、加香菜)", "1", "6.66"]});
escPrinter.addTexts({paperType:0,texts:["82年的快乐肥宅水(去冰)", "2", "9.99"]});
escPrinter.addText({text:"--------------------------------\n\n"});
escPrinter.TurnEmphasizedModeOnOrOff({isBold:true});//开启加粗
escPrinter.addTexts({paperType:0,texts:["合计:", "1314.00"]});
escPrinter.addTexts({paperType:0,texts:["抹零:", "14.00"]});
escPrinter.addTexts({paperType:0,texts:["应收:", "1300.00"]});
escPrinter.TurnEmphasizedModeOnOrOff({isBold:false});//关闭加粗
escPrinter.addText({text:"--------------------------------\n"});
escPrinter.SelectJustification({justification:2});//设置打印居右
escPrinter.addText({text:"收银员:广东包租公\n"});
escPrinter.PrintAndLineFeed();//打印空行
escPrinter.SelectJustification({justification:1});//设置打印居中
escPrinter.addPrintQRCode({qrcode:"https://www.baidu.com"});//打印二维码
escPrinter.addText({text:"\n(扫二维码送手机)\n"});
escPrinter.PrintAndLineFeed();//打印空行
escPrinter.addCutPaper();//切纸(带切刀打印机才可用)
escPrinter.addGeneratePlus();//开钱箱
escPrinter.printer(function(ret){
    console.log(SON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/10/10