当前位置: 首页 > news >正文

uniapp内置蓝牙打印

在这里插入图片描述

概述

内置打印机,无需原生SDK支持,直接用uniapp蓝牙调用打印,适用于所有内置打印机的设备

下载源码

功能说明

  1. 打印服务介绍
    打印服务是系统预置的功能,用于管理打印机设置和外接打印机的添加。开发者通过连接内置打印机进行打印业务,包括58和80mm两种打印规格的热敏打印。

  2. 注意事项

    务必打开设备蓝牙开关,再导入示例程序运行

    无需APP原生任何SDK导入,只要设备支持蓝牙低功耗协议即可,

    尽量使用 HBuilderX 4.0+ 以上版本

    打印结束后也及时关闭打印服务

  3. 内置蓝牙打印机原理

    在蓝牙设备列表中可以看到1个已经配对,且永远存在的蓝牙设备“InnerPrinter”,这是由操作系统虚拟出来的打印机设备,实际并不存在。虚拟蓝牙支持Sunmi《esc/pos》指令。

    大致实现过程如下:

    1). uni.createBLEConnection与该蓝牙设备建立连接。

    2). 将指令和文本内容拼接转码为Bytes。

    3). 发送给InnerPrinter。

    4). 底层打印服务驱动打印设备完成打印。

  4. 常见问题
    代码报错: 23:25:52.693 …/…/…/…/C:/Users/86198/Documents/HBuilderProjects/内置蓝牙打印示例/uni_modules/sunmi-blueprint/js_sdk/bluetoothMixin.js (1:7):
    “default” is not exported by “…/…/…/…/C:/Users/86198/Documents/HBuilderProjects/内置蓝牙打印示例/uni_modules/sunmi-blueprint/js_sdk/printerjobs.js”, imported

这是明显的Node版本不兼容导致的,尽可能使用14版本,编译版本一定要选VUE2,不要选VUE3
Hbuilder使用4.0以上,最好是最新的

再强调下,一定要选择VUE2 VUE2 VUE2,文档也写了,示例也发了,运行截图也有,也有GPT可以查,还不会就告别这个行业吧

上来啥也不会就给1星的白痴勿扰,免费的插件,还求着你用吗?

完整代码示例

<template><view style="padding: 10px;"><button @click="innerPrinter('1')" style="margin-top: 10px;">打印[堂食-结账单]</button><button @click="innerPrinter('2')" style="margin-top: 10px;">打印[堂食-点菜单]</button><button @click="innerPrinter('3')" style="margin-top: 10px;">打印[零点-结账单]</button><button @click="innerPrinter('4')" style="margin-top: 10px;">打印[外卖订单]</button><button @click="innerPrinter('5')" style="margin-top: 10px;">打印[排号小票]</button><button @click="innerPrinter('6')" style="margin-top: 10px;">打印[堂食-预结单]</button><button @click="closePrint()" style="margin-top: 10px;">关闭蓝牙打印</button></view>
</template><script>import { bluetoothMixin } from '@/uni_modules/sunmi-blueprint/js_sdk/bluetoothMixin'import printerUtil from '@/uni_modules/sunmi-blueprint/js_sdk/printerutil.js'import jsonData1 from './jsonData1.json';import jsonData2 from './jsonData2.json';import jsonData3 from './jsonData3.json';import jsonData6 from './jsonData6.json';export default {mixins: [bluetoothMixin], // 使用mixindata() {return {//内置打印机-蓝牙信息配置printConfig:{"deviceId": "00:11:22:33:44:55","serviceId": "00001101-0000-1000-8000-00805F9B34FB","notifyId": "00001101-0000-1000-8000-00805F9B34FB","writeId": "00001101-0000-1000-8000-00805F9B34FB",},}},methods: {innerPrinter(templateId) {switch(templateId){case '1'://堂食-结账单this.templatePrint(this.printConfig,templateId, 1,jsonData1)break;  case '2'://堂食-点菜单this.templatePrint(this.printConfig,templateId,1,jsonData2)break;case '3'://零点-结账单this.templatePrint(this.printConfig,templateId, 1, jsonData3)break;  case '4'://外卖订单this.templatePrint(this.printConfig,templateId, 1, {})break; case '5'://排号小票this.templatePrint(this.printConfig,templateId, 1, {})break; 	case '6'://堂食-预结单this.templatePrint(this.printConfig,templateId, 1, jsonData6)break;}}}}
</script>

打印方法

import PrinterJobs from './printerjobs.js'
import printerUtil from './printerutil.js'
printerJobs.setAlign('rt') //文字居中方式设置 对齐方式 LT/CT/RT.setSize(2, 2)  //设置字体大小 高度 宽度.print(printerUtil.fillLine())  //打印分割线.setBold(true)//字体加粗.print(printerUtil.inline('应付', '¥99.99'))  //两列.print(printerUtil.inline2('鲜汁肉包', 'x2', '¥199.99')) //打印三列.text('内容') //增加打印内容.println()//打印换行.setLineSpacing(10) //设置行间距为 n 点行,默认值行间距是 30 点.lineFeed()//打印空行.setColor(0)//设置字体颜色,需要打印机支持 0 默认颜色黑色 1 红色.beep() //蜂鸣警报,需要打印机支持.clear() //清空任务 防止打印任务太多,打印机停不下来.printQrcodeByESC('123456') //打印二维码.cutPaper() //切纸

长期维护,持续更新,提供终身免费技术支持

在这里插入图片描述

http://www.dtcms.com/a/263781.html

相关文章:

  • Qt小组件 - 1(手风琴)
  • 计算机网络:【socket】【UDP】【地址转换函数】【TCP】
  • 测试第六讲-测试模型分类
  • CloudBase AI ToolKit实战:从0到1开发一个智能医疗网站
  • 时空数据挖掘五大革新方向详解篇!
  • 电机控制——电机位置传感器零位标定
  • 安防监控视频汇聚平台EasyCVR v3.7.2版云端录像无法在web端播放的原因排查和解决方法
  • springboot3.2/3.4+rocketmq5.3.3测试程序的基本例子
  • SSVEP Next:现代化的 SSVEP 可视化 Web 快速实现
  • CAU数据挖掘实验 表分析数据插件
  • 【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(2)支持向量回归(SVR)
  • 软考中级【网络工程师】第6版教材 第1章 计算机网络概述
  • MATLAB构建capm和三因子模型
  • (论文总结)语言模型中的多模态思维链推理
  • 记一次Ubuntu22安装MongoDB8并同步本地数据过程
  • 动手学深度学习13.5. 多尺度目标检测-笔记练习(PyTorch)
  • FPGA FMC 接口
  • 【仿muduo库实现并发服务器】LoopThreadPool模块
  • Linux安装JDK和Maven
  • 多探头分布式雷达测流系统解决方案概述
  • 洛谷P1379 八数码难题【A-star】
  • 目标检测在国防和政府的应用实例
  • vue-i18n+vscode+vue 多语言使用
  • 缺乏对新成员的有效融入机制,如何改进
  • 学习昇腾开发的第12天--安装第三方依赖
  • 【Linux基础知识系列】第三十八篇 - 打印系统与 PDF 工具
  • Ubuntu 20.04 下 OpenVINO 2024 安装与配置
  • 业界优秀的零信任安全管理系统产品介绍
  • 基于 51 单片机做的二十四点小游戏
  • MongoDB 常用增删改查方法及示例