# 蓝牙小票打印核心方法 **Repository Path**: loftyhu/BLETicketPrinter ## Basic Information - **Project Name**: 蓝牙小票打印核心方法 - **Description**: 用于小程序集成蓝牙小票打印(蓝牙低功耗外围设备小票打印),方便引入其它项目,已经清除多余的代码,简化使用。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2024-09-02 - **Last Updated**: 2024-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 当前项目状态 - [✓] 文字打印 - [✓] 列表表格打印 - [✓] 行内左右分开对齐打印 - [✓] 二维码打印(传递参数为二维码数据即可)[2023.2.13记:安卓打印时,二维码错误!!后续得空再修复!!] ### 使用方法 1. 请将此项目克隆到您的小程序应用根目录的 BLETicketPrinter 文件夹 ``` git clone https://gitee.com/in-wechat/BLETicketPrinter.git BLETicketPrinter ``` 2. 编辑 app.json,增加一个打印需要调用的页面 ``` { "pages":[ "BLETicketPrinter/pages/printer/printer" ] } ``` 3. 调用代码 /pages/index/index.js ``` import { Printer } from "../../BLETicketPrinter/printer"; Page({ data: { order: { //..... } }, onLoad: function (options) { this.initData(); }, //过程可以选择从服务器获取数据 initData(){ this.setData({ order: { //订单数据 order_id: "202207120513", state_string: "已完成", make_time: "2022年7月12日", time: "2022-07-12 13:14:20", //开单员 employee_name: "幺月儿", employee_phone: "186xxxx8888", //客户信息 customer_name: "张三", customer_phone: "138xxxx8998", //店铺信息 shop_name: "广场中心印刷店", shop_address: "青秀区民族大道xxx号新纪广场", shop_phone: "159xxxx0246", //开单商品列表 sku_list: [ {name: "冰糖黄皮果苗", quantity: 50, price: 12, amount: 10}, {name: "贵妃黄皮果苗", quantity: 20, price: 18, amount: 15}, {name: "黑金刚黄皮果苗", quantity: 30, price: 13, amount: 10}, {name: "用于种植时顺便施肥的肥料", quantity: 20, price: 90, amount: 80} ], //订单金额 sku_amount: 3150, amount: 2500, sku_discount: 450, discount: 200, fee: 0, //商品数量 sku_quantity: 120 } }); }, //打印,注意,我本次打印所使用的设备打印的小票宽度是32个字符,其它机器,请另行调整 print_ing: false, print(){ if(this.print_ing) return; this.print_ing = true; let order = this.data.order; //将订单的商品转换成一个列表,用于打印出一个带表头的表格 let sku_table = []; //表头,一维数组,多少个值代表多少列,这里使用3列 sku_table.push(["名称", "数量", "单价"]); //表格每一行放一个商品 for(let i=0; i { //打印完成会通知该方法,由于是跨页面,不可使用弹窗提醒等方法! } }, success: res => { res.eventChannel.emit("setPrinter", printer); } }); this.print_ing = false; } }); ``` ![alt 语法示例](https://www.inphp.cc/assets/images/BLEPrinter.jpg) 请参考示例项目:https://gitee.com/in-wechat/BLETicketPrinter-simple