xGPrinterBle装了佳博打印SDK(iOS、Android),可通过蓝牙连接打印机,同时支持ESC和TSC打印2中模式打印。
模块使用攻略
1、config.xml配置信息如下:
<preference name="backgroundMode" value="bluetooth-central"/>
2、需要配置info.plist蓝牙权限
初始化蓝牙
initBle(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
state : 'on',//unknown 蓝牙状态未知
//resetting 重置中
//unsupported 不支持蓝牙
//unauthorized 蓝牙未授权
//off 蓝牙关闭状态 >> 已关闭
//on 蓝牙开启状态 >> 已打开
}
var demo = api.require('xGPrinterBle');
demo.initBle(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
反初始化蓝牙
unInitBle(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('xGPrinterBle');
demo.unInitBle(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
开始扫描蓝牙设备
startScan(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
name : '',
uuid : '',
}
err:
{
msg: ''
}
var demo = api.require('xGPrinterBle');
demo.startScan(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
停止扫描
stopScan(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
}
err:
{
msg: ''
}
var demo = api.require('xGPrinterBle');
demo.stopScan(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
连接蓝牙设备
connectBle({params},callback(ret, err))
uuid:
ret:
{
status: true, //布尔型;true||false
state : 'connected',//notfound 未找到设备
//disconnect 断开连接
//connecting 连接中
//connected 连接上
//timeout 连接超时
//failt 连接失败
}
err:
{
msg: ''
}
var demo = api.require('xGPrinterBle');
demo.connectBle(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
断开蓝牙连接
closeBle(callback(ret, err))
ret:
{
status: true //布尔型;true||false
}
err:
{
msg: ''
}
var demo = api.require('xGPrinterBle');
demo.closeBle(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
TSC模式打印
printTsc({params}, callback(ret, err))
rows:
[{
lineType : 'size',//设置标签尺寸的宽和高
width : 0,//标签宽度
height : 0,//标签高度
},{
lineType : 'gap',//设置标签间隙尺寸 单位mm
m : 0,//间隙长度
n : 0,//间隙偏移
},{
lineType : 'reference',//设置标签原点坐标
x : 0,//横坐标
y : 0,//纵坐标
},{
lineType : 'addSpeed',//设置打印速度
speed : 0,//打印速度
},{
lineType : 'addDensity',//设置打印浓度
speed : 0,//打印浓度
},{
lineType : 'addDirection',//设置打印方向
speed : 0,//打印方向
},{
lineType : 'cls',//清除打印缓冲区
},{
lineType : 'text',//在标签上绘制文字
x : 0,//横坐标
y : 0,//纵坐标
font : 'TSS24.BF2',//字体类型
rotation : 0,//旋转角度
xscal : 0,//横向放大
yscal : 0,//纵向放大
data : ''//文字字符串
},{
lineType : 'image',//图片打印
x : 0,//点阵影像的水平启始位置
y : 0,//点阵影像的垂直启始位置
mode : 0,//影像绘制模式 0 OVERWRITE 1 OR 2 XOR
width : 0,//影像的宽度,以 byte 表示
data : '',//图片路径(fs://)
},{
lineType : 'code128',//在标签上绘制文字
x : 0,//横坐标
y : 0,//纵坐标
barcodeType : 'CODE128',//条码类型
height : 40,//条码高度,默认为40
readable : 1,//是否可识别,0: 人眼不可识,1: 人眼可识
rotation : 0,//旋转角度,条形码旋转角度,顺时钟方向,0不旋转,90顺时钟方向旋转90度,180顺时钟方向旋转180度,270顺时钟方向旋转270度
narrow : 2,//默认值2,窄 bar 宽度,以点(dot)表示
wide : 4,//默认值4,宽 bar 宽度,以点(dot)表示
data : ''//条码内容
},{
lineType : 'qrcode',//在标签上绘制QRCode二维码
x : 0,//横坐标
y : 0,//纵坐标
level : 'L',//选择QRCODE纠错等级,L为7%,M为15%,Q为25%,H为30%
cellwith : 4,//二维码宽度1~10,默认为4
mode : 'A',默认为A,A为Auto,M为Manual
rotation : 0,//旋转角度,QRCode二维旋转角度,顺时钟方向,0不旋转,90顺时钟方向旋转90度,180顺时钟方向旋转180度,270顺时钟方向旋转270度
data : ''//条码内容
},{
lineType : 'addPrint',//执行打印
m : 0,//间隙长度
n : 0,//间隙偏移
},{
lineType : 'addStrToCommand',//将字符串转成十六进制码
strCommand : '',//命令字符串
},{
lineType : 'addSelfTest',//打印自检页,打印测试页
},{
lineType : 'addPeel',//设置打印机剥离模式
tear : 'ON'// ON/OFF 是否开启
},{
lineType : 'tear',//置打印机撕离模式
tear : false//true/false 是否开启
},{
lineType : 'addCutter',//设置切刀是否有效
tear : 'OFF'//是否开启 OFF/pieces (0<=pieces<=127)设定几张标签切一次
},{
lineType : 'addPartialCutter',//设置切刀半切是否有效
tear : 'OFF'//是否开启
},{
lineType : 'addSound',//设置蜂鸣器
level : 0,//频率
interval : 0,//时间ms
},{
lineType : 'addCashdrawer',//打开钱箱命令,CASHDRAWER
m : 0,//钱箱号 m 0,48 钱箱插座的引脚2 1,49 钱箱插座的引脚5
t1 : 0,//高电平时间0 ≤ t1 ≤ 255输出由t1和t2设定的钱箱开启脉冲到由m指定的引脚
t2 : 0,//低电平时间0 ≤ t2 ≤ 255输出由t1和t2设定的钱箱开启脉冲到由m指定的引脚
},{
lineType : 'bar',//在标签上绘制黑块,画线
x : 0,//起始横坐标
y : 0,//起始纵坐标
width : 0,//线宽,以点(dot)表示
height : 0//线高,以点(dot)表示
},{
lineType : 'addBox',//在标签上绘制矩形
xStart : 0,//起始横坐标
yStart : 0,//起始纵坐标
xEnd : 0,//终点横坐标
yEnd : 0,//终点纵坐标
lineThickness : 0,//矩形框线厚度或宽度,以点(dot)表示
},{
lineType : 'queryPrinterStatus',//查询打印机状态
},{
lineType : 'addReverse',//将指定的区域反向打印(黑色变成白色,白色变成黑色)
xStart : 0,//起始横坐标
yStart : 0,//起始纵坐标
xWidth : 0,//X坐标方向宽度,dot为单位
yHeight : 0,//Y坐标方向高度,dot为单位
},{
lineType : 'addQueryPrinterStatus',//打印机打印完成时,自动返回状态。可用于实现连续打印功能
status : 'ON'//OFF 关闭自动返回状态功能 ON 开启自动返回状态功能 BATCH 全部打印完成后返回状态
},{
lineType : 'queryElectricity',//查询打印机电量。
}]
ret:
{
status: true, //布尔型;true||false
evenType : 'success',//progress success
total : 0,
progress : 0,
data : '',
}
err:
{
msg:""
}
var obj = api.require('xGPrinterBle');
demo.printTsc({
rows : [
{lineType : 'size',width : 48, height:80},
{lineType : 'gap',m : 1, n:0},
{lineType : 'reference',x : 0, y:0},
{lineType : 'tear',data : 'ON'},
{lineType : 'addQueryPrinterStatus',data : 'ON'},
{lineType : 'text',x : 0, y : 80, font:'TSS24.BF2', rotation:0, xScal:2, yScal:2, data:'佳博科技ABCD1234'},
{lineType : 'text',x : 0, y : 144, font:'5', rotation:0, xScal:1, yScal:1, data:'2020/01/01'},
{lineType : 'addPrint',m : 1, n:1},
{lineType : 'queryPrinterStatus'},
]
},function(ret, err){
alert(JSON.stringify(ret)+" "+ JSON.stringify(err));
});
iOS、Android系统
可提供的1.0.0及更高版本
ESC模式打印
printEsc({params}, callback(ret, err))
rows:
[{
lineType: 'addUPCAtest',//打印UPCA条码
data : ''//数据范围0-9,长度为11位
},{
lineType: 'text',//插入文字
data : ''//文本
},{
lineType: 'addStrToCommand',//将字符串转成十六进制码
data : ''//命令字符串
},{
lineType: 'addInitializePrinter',//打印机初始化,必须是第一个打印命令0x1b,0x40
},{
lineType: 'lines',//打印并且走纸多少行,默认为8行,打印完内容后发送
data : 8,//行数
},{
lineType: 'lineFeed',//换行
},{
lineType: 'addPrintMode',//设置打印模式,0x1B 0x21 n(0-255),根据n的值设置字符打印模式
n : 0,//二进制默认为00000000(0X0),10001000(0X88)表示下划线和加粗,00001000(0X08)表示加粗,10000000(0X80)表示下划线
},{
lineType: 'addSetInternationalCharacter',//设置国际字符集,默认为美国0
n : 0,//字符集编号
},{
lineType: 'addSet90ClockWiseRotatin',//设置字符是否旋转90°,默认为0
n : 0,//是否旋转
},{
lineType: 'addSetJustification',//设置对齐方式
n : 0,//左 中 右对齐,0左对齐,1中间对齐,2右对齐
},{
lineType: 'addOpenCashDawer',//开钱箱
m : 0, //钱箱引脚号
t1 : 0,//高电平时间
t2 : 0,//低电平时间
},{
lineType: 'addSound',//蜂鸣器
m : 0, //报警灯和鸣叫次数
t : 0,//时间
n : 0,//方式
},{
lineType: 'addLineSpacing',//设置行间距,不用设置,打印机默认为30
n : 30,//行间距高度,包含文字
},{
lineType: 'addSetUpsideDownMode',//设置倒置模式 选择/取消倒置打印模式。
n : 0,// 是否倒置,默认为0, 0 ≤n ≤255 当n的最低位为0时,取消倒置打印模式。当n的最低位为1时,选择倒置打印模式。只有n的最低位有效;
},{
lineType: 'addSetCharcterSize',//设置字符放大,限制为不放大和放大2倍,n=0x11
width : 0,// width | height 宽度放大倍数,0 ≤n ≤255 (1 ≤ 纵向放大倍数 ≤8,1 ≤ 横向放达倍数 ≤8)[描述] 用0 到2 位选择字符高度,4 到7 位选择字符宽度
height : 0,// width | height 宽度放大倍数,0 ≤n ≤255 (1 ≤ 纵向放大倍数 ≤8,1 ≤ 横向放达倍数 ≤8)[描述] 用0 到2 位选择字符高度,4 到7 位选择字符宽度
},{
lineType: 'addSetReverseMode',//设置反白模式,黑白反显打印模式
n : 0,// 是否反白,当n的最低位为0时,取消反显打印模式。当n的最低位为1时,选择反显打印模式。只有n的最低位有效;
},{
lineType: 'queryRealtimeStatus',//打印机实时状态请求
n : 1,// 打印机状态 1 ≤n ≤4
},{
lineType: 'addCutPaperAndFeed',//设置切纸后走纸
n : 0,// 走纸距离
},{
lineType: 'addCutPaper',//切纸
n : 0,// 0全切纸,1是半切
},{
lineType: 'addSetBarcodeHRPosition',//设置条码可识别字符,选择HRI字符的打印位置
n : 0,//可识别字符位置,0, 48 不打印 1, 49 条码上方 2, 50 条码下方 3, 51 条码上、下方都打印
},{
lineType: 'addSetBarcodeHRIFont',//设置条码字符种类,选择HRI使用字体
},{
lineType: 'barcodeHeight',//设置条码高度
data : 40,//高度 条码高度为n点,默认为40
},{
lineType: 'barcodeWidth',//设置条码单元宽度,不用设置,使用打印机内部默认值
data : 2,//条码宽度 2 ≤n ≤6
},{
lineType: 'addEAN13',//打印EAN13码
data : '',//数据范围0-9,长度为12位
},{
lineType: 'addEAN8',//打印EAN8码
data : '',//数据范围0-9,长度为7位
},{
lineType: 'addUPCA',//打印UPCA条码
data : '',//数据范围0-9,长度为11位
},{
lineType: 'addITF',//打印ITF14条码
data : '',//数据范围 0-9 数据长度 偶数个
},{
lineType: 'addCODE39',//打印CODE39条码
data : '',//数据范围0-9 A-Z SP $ % + - . / ,*为 (开始/结束字符)
},{
lineType: 'addCODE128',//打印CODE128码
charset : 'B',//CODEB字符集有 {A {B {C,charset默认值用B, 实际上,字符集可以插入到content中,一个content可以有多个字符集定义。
data : '',//数据范围0x00-0x7f
},{
lineType: 'addNVLOGO',//addNVLOGO
n : 1,//序号,1<=n<=20
m : 0,//默认为0
},{
lineType: 'image',//打印光栅位图
data : '',//图片 (fs://)
},{
lineType: 'addQRCodeSize',//设定QRCode大小;(可以省略)
pL : 0,
pH : 0,
cn : 0,
fn : 0,
n : 0,
},{
lineType: 'addQRCodeLevel',//设定纠错等级;(一般无需设定,忽略)
pL : 0,
pH : 0,
cn : 0,
fn : 0,
n : 0,
},{
lineType: 'addQRCodeSave',//将QRCode对应的文字信息存入打印机缓存中;(必须要有)
pL : 0,
pH : 0,
cn : 0,
fn : 0,
m : 0,
},{
lineType: 'addQRCodePrint',//发送打印QRCode命令。
pL : 0,
pH : 0,
cn : 0,
fn : 0,
m : 0,
},{
lineType: 'addSetKanjiFontMode',//设置是否汉字字体
n : 0,//是否倍宽 是否倍高 是否下划线
},{
lineType: 'addSelectKanjiMode',//设置汉字有效
},{
lineType: 'addSetKanjiUnderLine',//设置汉字下划线
n : 0,//根据 n 的值,选择或取消汉字的下划线:0, 48 取消汉字下划线 1, 49 选择汉字下划线(1 点宽) 2, 50 选择汉字下划线(2点宽)
},{
lineType: 'addCancelKanjiMode',//设置汉字无效
},{
lineType: 'addSetCharacterRightSpace',//设置字符右间距
n : 0,//间距长度 0 ≤ n≤255
},{
lineType: 'addSetKanjiLefttandRightSpace',//设置汉字左右间距
n1 : 0,//左间距 0 ≤ n1 ≤ 255
n2 : 0,//右间距 0 ≤ n2 ≤ 255
},{
lineType: 'addTurnEmphasizedModeOnOrOff',//设置加粗模式
n : 0,//是否加粗 0 ≤ n≤255
},{
lineType: 'addTurnDoubleStrikeOnOrOff',//设置加重模式
n : 0,//是否加重 0 ≤ n≤255
},{
lineType: 'addSetHorAndVerMotionUnits',//设置水平和垂直单位距离
x : 0,//水平单位
y ; 0,//垂直单位
},{
lineType: 'addSetAbsolutePrintPosition',//设置绝对打印位置
n : 0,//与起始打印位置距离
},{
lineType: 'addSetPrintingAreaWidth',//设置打印宽度
width : 0,//打印宽度
},{
lineType: 'receiptDoubleHeightOrDefaultPrint',//票据默认倍高(重启不失效)
n1 : 0,//宽 默认为0,翻倍为1
m2 : 0,//高 默认为0,翻倍为1
n3 : 0,//汉字宽 默认为0,翻倍为1
n4 : 0,//汉字高 默认为0,翻倍为1
},{
lineType: 'setDefaultCodePage',//设置默认代码页
n : 0,//代码页 n的参数范围为(0-10,16-32,50-89)
},{
lineType: 'setBaudRate',//波特率
baudRate : 0,//波特率
},{
lineType: 'queryElectricity',//查询打印机电量。
}]
ret:
{
status: true, //布尔型;true||false
evenType : 'success',//progress success
total : 0,
progress : 0,
data : '',
}
err:
{
msg:""
}
var obj = api.require('xGPrinterBle');
demo.printEsc({
rows : [
{lineType : 'addInitializePrinter'},
{lineType : 'lines', data:5},
{lineType : 'addSetJustification', n:1},
{lineType : 'addPrintMode', n:88},
{lineType : 'text', data:'Print text\n'},
{lineType : 'lineFeed'},
{lineType : 'addPrintMode', n:0},
{lineType : 'text', data:'Welcome to use Smarnet printer!'},
{lineType : 'lines', data:5},
]
},function(ret, err){
alert(JSON.stringify(ret)+" "+ JSON.stringify(err));
});
iOS、Android系统
可提供的1.0.0及更高版本
获取连接蓝牙状态
getBleConnectStatus()
{
status: true, //布尔型;true||false
state : 'connected',//notfound 未找到设备
//disconnect 断开连接
//connecting 连接中
//connected 连接上
//timeout 连接超时
//failt 连接失败
}
var demo = api.require('xGPrinterBle');
var ret = demo.getBleConnectStatus();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本