更新记录

1.0.0(2023-10-08)

汉印ft800打印机


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


前言

汉印ft800打印机

支持定制,QQ252797991


var ft = uni.requireNativePlugin("wrs-ft");

方法

  • 初始化SDK,可以放到app启动的时候初始化

                // 初始化SDK
                ft.initSDK({
                    qudaoCode: "a+Ubi0NBzm49FyzR8kFMo//arTb1odK2EjPx5kKys/qjkx6zF9pVjR8t4w2n3QY3DyBVCS0qHSm51aNNR+u8kpQz4KZFHL2bxU5hcEF8TCXCefT7SLUzuEsr66P2BkZa6yhPpW45MzQyS4gVh/OHdCnaa7oPNlQvpM8igTyi1Fg="
                })
  • 设备状态信息监听

                ft.setStatusListener((resp) => {

                });
  • 打印或升级监听

                ft.setPrintListener((resp) => {
                    var opt = resp.opt;
                    switch (opt) {
                        case "onPrintSuccess":
                            this.showMsg("打印成功")
                            break;
                        case "onPrintFail":
                            this.showMsg("打印失败:" + JSON.stringify(resp))
                            break;
                        case "onPrintSendFail":
                            this.showMsg("打印发送失败:" + JSON.stringify(resp))
                            break;
                        case "onUpgradeSuccess":
                            this.showMsg("升级")
                            break;
                        case "onUpgradeSendFail":
                            this.showMsg("升级发送失败:" + JSON.stringify(resp))
                            break;
                        default:
                            break;
                    }
                })

                var params = {};
                params.address = this.address;
                ft.connectBluetooth(params, (resp)=>{
                    if(resp.suc) {
                        this.showMsg("蓝牙连接成功")
                    } else {
                        this.showMsg("蓝牙连接失败")
                    }
                })
  • wifi连接打印机

                var params = {};
                params.ip = “192.168.0.xx”;
                ft.connectWifi(params, (resp)=>{
                    var opt = resp.opt;
                    if(opt == "onSuccess") {
                        // 连接成功
                    } else if(opt = "onDeviceLost") {
                        // 设备掉线
                    } else if(opt = "onFail") {
                        // 连接失败
                    }
                })

                var params = {};
                params.deviceId = “xxx”;
                ft.connectUSB(params, (resp)=>{
                    var opt = resp.opt;
                    if(opt == "onSuccess") {
                        // 连接成功
                    } else if(opt = "onDeviceLost") {
                        // 设备掉线
                    } else if(opt = "onFail") {
                        // 连接失败
                    }
                })
  • 打印文本、图片

var qrcodeUrl = plus.io.convertLocalFileSystemURL("_www/static/qrcode.png");
                var imageUrl = plus.io.convertLocalFileSystemURL("_www/static/select.pn");
                var cmds = [];
                // 准备打印
                cmds.push({
                    opt: "preparePrint"
                })
                cmds.push({
                    opt: "setPageSize",
                    width: 2360,
                    height: 2360
                })
                cmds.push({
                    opt: "setText",
                    textSize: 60,
                    x: 108,
                    y: 238,
                    text: "主要成分:医疗有害医疗有害医疗"
                })
                cmds.push({
                    opt: "setText",
                    textSize: 60,
                    x: 108,
                    y: 338,
                    text: "主要成分:医疗有害医疗有害医疗"
                })
                cmds.push({
                    opt: "setText",
                    textSize: 60,
                    x: 108,
                    y: 438,
                    text: "主要成分:医疗有害医疗有害医疗"
                })
                cmds.push({
                    opt: "setBitmap",
                    left: 1920,
                    top: 1800,
                    url: qrcodeUrl
                })
                cmds.push({
                    opt: "setBitmap",
                    left: 1645,
                    top: 465,
                    url: imageUrl
                })
                var params = {};
                params.cmds = cmds; // 设置打印内容
                params.id = 1; // 包序号
                params.index = 1; // 当前第几页
                params.count = 1; // 总页数
                params.ctl = 1; //打印后是否裁切 0 不切,1 切刀 3黑标
                params.copies = 1; // 当前页打印份数
                params.taskId = 1; // 任务id(0~255)
                params.compress = true; // 是否压缩数据
                params.type = 1; // 打印效果 0=二值效果 1=文档打印效果 2=图片打印效果
                params.recycler = true; // 是否回收图片, 打印内容会在app内存里面将文本、图片重新生成一张图片,实际上打印的是这张重新生成的图片,一般打印完都回收这张图片
                ft.print(params, (resp)=>{
                    if(resp.suc) {

                    } else {
                        this.showMsg("打印失败:" + JSON.stringify(resp))
                    }
                })
  • 断开连接

    ft.disconnect() 
  • 断开打印通道

    ft.disconnectPrint()    
  • 取消打印

    ft.cancelPrint()    
  • 重打

    ft.rePrint()    
  • 设置打印浓度

    ft.setDensity({
        level: 1 // 浓度,level = 1,2,3
    })  
  • 设置纸张类型

    ft.setPaper({
        paperType: 0 //  0连续纸 1黑标纸
    })  
  • 设置待机时间

    ft.setStandbyTime({
        time: 0 //  单位秒
    })  
  • 检查状态

    ft.checkState() 
  • isEnableSend

    ft.isEnableSend((resp)=>{
        var isEnableSend = resp.isEnableSend
    })  
  • 获取设备名字

    ft.getPrintName((resp)=>{
        var name = resp.name
    })  
  • 升级

    ft.upgradePrinterAndWiFi({
        url: "/xx/xx/xx.bin"
    })  
  • 获取设备SN

    ft.getPrinterNo((resp)=>{
        var no = resp.no
    })  
  • 获取碳带余量

    ft.getConsumableRemaining((resp)=>{
        var value = resp.value
    })  
  • 获取耗材型号

    ft.getConsumableModel((resp)=>{
        var consumableModel = resp.consumableModel
    })  
  • 获取设备固件版本号

    ft.getFirmwareVersion((resp)=>{
        var version = resp.version
    })  
  • 获取设备型号

    ft.getModel((resp)=>{
        var model = resp.model
    })  
  • pdf转为图片

    var params = {};
    params.url = "/xx/xx.pdf"
    params.dir = "/xxx/xxx" // 图片保存路径
    ft.pdfToPrintImage((resp)=>{

    })  

如果觉得可以就点个👍吧,欢迎粉丝收藏,土豪打赏,您的关注就是我们创作的动力!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

蓝牙、定位

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问