xGPrinterBle

概述

xGPrinterBle装了佳博打印SDK(iOS、Android),可通过蓝牙连接打印机,同时支持ESC和TSC打印2中模式打印。

模块使用攻略

1、config.xml配置信息如下:

<preference name="backgroundMode" value="bluetooth-central"/>

2、需要配置info.plist蓝牙权限

模块接口

initBle

初始化蓝牙

initBle(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    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

反初始化蓝牙

unInitBle(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

示例代码

var demo = api.require('xGPrinterBle');
demo.unInitBle(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

startScan

开始扫描蓝牙设备

startScan(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    name : '',
    uuid : '',
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ''
}

示例代码

var demo = api.require('xGPrinterBle');
demo.startScan(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

stopScan

停止扫描

stopScan(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ''
}

示例代码

var demo = api.require('xGPrinterBle');
demo.stopScan(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

connectBle

连接蓝牙设备

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

params

uuid:

  • 类型:字符串型
  • 描述:(可选项)蓝牙uuid。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    state : 'connected',//notfound  未找到设备
                   //disconnect 断开连接
                   //connecting 连接中
                   //connected 连接上
                   //timeout 连接超时
                   //failt 连接失败
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ''
}

示例代码

var demo = api.require('xGPrinterBle');
demo.connectBle(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

closeBle

断开蓝牙连接

closeBle(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: ''
}

示例代码

var demo = api.require('xGPrinterBle');
demo.closeBle(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

printTsc

TSC模式打印

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

params

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',//查询打印机电量。
}]

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    evenType : 'success',//progress success
    total : 0,
    progress : 0,
    data : '',
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    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及更高版本

printEsc

ESC模式打印

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

params

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',//查询打印机电量。
}]

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    evenType : 'success',//progress success
    total : 0,
    progress : 0,
    data : '',
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    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

获取连接蓝牙状态

getBleConnectStatus()

ret:

  • 类型:JSON对象
  • 内部字段:
{
    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及更高版本

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