seblePrinter

来自于:开发者立即使用

init connect print printLocal printString

概述

seblePrinter简介

seblePrinter 模块概述

本模块封装了蓝牙小票打印机,通过html网页形式和字符串形式打印小票,使用起来方便,可自定义格式和内容。

实例widget下载地址

模块接口

init

搜索小票打印机蓝牙接口

init(callback(ret, err))

init(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. perpherals: [] //数组类型;数组内包含字典,属性分别为id(数字类型)、name(字符串类型)、state(数字类型,0为没有连接,1为正在连接,2为已经连接,3为正在断开连接)
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. error: 0 //数字类型;
  3. //错误码:
  4. //0(未知错误),
  5. //1(正在重启),
  6. //2(设备不支持),
  7. //3(未授权),
  8. //4(蓝牙可用,但是未打开),
  9. //5(搜索超时)
  10. }

示例代码

  1. var printer = api.require('seblePrinter');
  2. printer.init(function(ret, err){
  3. if(ret){
  4. alert(JSON.stringify(ret));
  5. }
  6. if(err){
  7. alert(JSON.stringify(err));
  8. }
  9. });

可用性

iOS系统

可提供的1.0.0及更高版本

connect

连接小票打印机接口

connect({params}, callback(ret, err))

params

id:

  • 类型:数字类型
  • 描述:默认值为0,填写init接口返回的id。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. message: "连接成功" //字符串;连接成功描述信息
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. message: "连接失败" //字符串;连接失败描述信息
  3. }

示例代码

  1. var printer = api.require('seblePrinter');
  2. printer.connect({
  3. id : 0
  4. },function(ret,err){
  5. if(ret.message){
  6. alert(ret.message);
  7. }
  8. if(err.message){
  9. alert(err.message);
  10. }
  11. });

可用性

iOS系统

可提供的1.0.0及更高版本

print

以html网络文件形式打印小票

print({params}, callback(ret, err))

params

url:

  • 类型:字符串
  • 描述:打印小票的html文件的网络地址。

alignment:

  • 类型:数字类型
  • 描述:对齐方式
  • 默认值:0
  • 取值范围:
    • 0(居中)
    • 1(左对齐)
    • 2(右对齐)

maxWidth:

  • 类型:数字类型
  • 描述:最大宽度
  • 默认值:450

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. state: 0 //数字类型;0为成功,1为失败
  3. message:"" //字符串;描述信息
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. //无返回值
  3. }

示例代码

  1. var printer = api.require('seblePrinter');
  2. printer.print({
  3. url:'',
  4. alignment:0,
  5. maxWidth:450
  6. },function(ret,err){
  7. if(ret){
  8. alert(JSON.stringify(ret));
  9. }
  10. if(err){
  11. alert(JSON.stringify(err));
  12. }
  13. });

可用性

iOS系统

可提供的1.0.0及更高版本

printLocal

以html本地文件形式打印小票接口

print({params}, callback(ret, err))

params

path:

  • 类型:字符串
  • 描述:打印小票的html本地地址(格式为 widget://)。

alignment:

  • 类型:数字类型
  • 描述:对齐方式
  • 默认值:0
  • 取值范围:
  • 0(居中)
  • 1(左对齐)
  • 2(右对齐)

maxWidth:

  • 类型:数字类型
  • 描述:最大宽度
  • 默认值:450

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. state: 0 //数字类型;0为成功,1为失败
  3. message:"" //字符串;描述信息
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. //无返回值
  3. }

示例代码

  1. var printer = api.require('seblePrinter');
  2. printer.printLocal({
  3. path:'widget://res/print.html',
  4. alignment:0,
  5. maxWidth:450
  6. },function(ret,err){
  7. if(ret){
  8. alert(JSON.stringify(ret));
  9. }
  10. if(err){
  11. alert(JSON.stringify(err));
  12. }
  13. });

可用性

iOS系统

可提供的1.0.0及更高版本

printString

以字符串形式打印小票接口

printString({params}, callback(ret, err))

params

printString:

  • 类型:数组
  • 描述:打印小票的数据。里面为字典类型。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. state: 0 //数字类型;0为成功,1为失败
  3. message:"" //字符串;描述信息
  4. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. //无返回值
  3. }

示例代码

  1. var printString=new Array();
  2. printString[0] = {'type':1,'title':'测试电商','font':'big','textAlignment':'center'};
  3. printString[1] = {'type':2,'text':'测试电商服务中心(销售单)','textAlignment':'center'};
  4. printString[2] = {'type':3,'text':'RN3456789012'};
  5. printString[3] = {'type':4,'title':'时间:','text':'2016-04-27 10:01:50','offset':150};
  6. printString[4] = {'type':4,'title':'订单:','text':'4000020160427100150','offset':150};
  7. printString[5] = {'type':2,'text':'地址:深圳市南山区学府路东深大店','textAlignment':'left'};
  8. printString[6] = {'type':5};
  9. printString[7] = {'type':6,'leftText':'商品','middleText':'数量','rightText':'单价'};
  10. printString[8] = {'type':7,'leftText':'铅笔','middleText':'5','rightText':'2.0'};
  11. printString[9] = {'type':7,'leftText':'橡皮','middleText':'2','rightText':'1.0'};
  12. printString[10] = {'type':7,'leftText':'笔记本','middleText':'10','rightText':'5.0'};
  13. printString[11] = {'type':5};
  14. printString[12] = {'type':8,'title':'总计:','text':'62.0'};
  15. printString[13] = {'type':8,'title':'实收:','text':'100.0'};
  16. printString[14] = {'type':8,'title':'找零:','text':'48.0'};
  17. printString[15] = {'type':5};
  18. printString[16] = {'type':2,'text':'二维码','textAlignment':'center'};
  19. printString[17] = {'type':9,'QRCode':'www.baidu.com'};
  20. var printer = api.require('seblePrinter');
  21. printer.printString({
  22. printString:printString
  23. },function(ret,err) {
  24. if(ret){
  25. alert(JSON.stringify(ret));
  26. }
  27. if(err){
  28. alert(JSON.stringify(err));
  29. }
  30. });

补充说明

printString 里面为字典

当type为1时设置(打印文字) title(文字) ,font(字体大小,可设置为big(大)、smalle(中)、middle(小), textAlignment(对齐方式、center(居中)、left(左对齐)、right(右对齐)) 例: ‘type’:1,’title’:’测试电商’,’font’:’big’,’textAlignment’:’center’

当type为2时设置(打印文字) text(文字) , textAlignment(对齐方式、center(居中)、left(左对齐)、right(右对齐)) 例:’type’:2,’text’:’测试电商服务中心(销售单)’,’textAlignment’:’center’

当type为3时设置(打印条形码) text(条形码字符串) 例:’type’:3,’text’:’RN3456789012’

当type为4时设置(打印文字) title(文字) ,text(文字),offset(偏移量,为数字类型) 例:’type’:4,’title’:’时间:’,’text’:’2016-04-27 10:01:50’,’offset’:150

当type为5时设置(打印虚线)

当type为6时设置(打印文字) leftText(文字) middleText(文字) rightText(文字) 例:’type’:6,’leftText’:’商品’,’middleText’:’数量’,’rightText’:’单价’

当type为7时设置(打印文字,和6区别见下图) leftText(文字) middleText(文字) rightText(文字) 例:’type’:7,’leftText’:’铅笔’,’middleText’:’5’,’rightText’:’2.0’

当type为8时设置(打印文字) title(文字) ,text(文字) 例:’type’:8,’title’:’总计:’,’text’:’62.0’

当type为9时设置 QRCode(二维码字符串) 例:’QRCode’:’www.baidu.com’

具体效果如下

Image text

可用性

iOS系统

可提供的1.0.0及更高版本