From bba77fcfef951a559bbfc257686dcd86499426fd Mon Sep 17 00:00:00 2001 From: aihe <961836564@qq.com> Date: Sat, 22 Jun 2024 00:11:54 +0800 Subject: [PATCH] uu --- components/tpx-bluetooth-print/print/print.js | 38 +++++++++++++++++-- .../print/tanexPrinterUniSdk.js | 8 +++- .../render-template-native.vue | 4 +- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/components/tpx-bluetooth-print/print/print.js b/components/tpx-bluetooth-print/print/print.js index 388ddfe..008ee88 100644 --- a/components/tpx-bluetooth-print/print/print.js +++ b/components/tpx-bluetooth-print/print/print.js @@ -16,7 +16,7 @@ OutputStreamWriter = plus.android.importClass("java.io.OutputStreamWriter") * @param mac_address 打印机ID * @param data 指令集字符串, 为了灵活起见, 指令集在业务代码中进行转换然后传递进来 */ -export const print = (mac_address, data) => { +export const print = (mac_address, data, isBytes) => { console.log("=====mac_address====", mac_address) var that = this if (!mac_address) { @@ -69,10 +69,14 @@ export const print = (mac_address, data) => { plus.android.importClass(outputStream) outputStream.write([0x1b, 0x40]) //打印复位 outputStream.flush() - + let bytes console.log("plus.android.invoke data getBytes======= before") - var bytes = plus.android.invoke(data, "getBytes", "gbk") /*utf-8*/ - console.log("plus.android.invoke data getBytes======= end") + if(!isBytes) { + bytes = plus.android.invoke(data, "getBytes", "gbk") /*utf-8*/ + } else { + bytes = data + } + console.log("plus.android.invoke data getBytes======= end", bytes) outputStream.write(bytes) outputStream.flush() @@ -131,6 +135,32 @@ export const printTest = function (printerid) { } } +// 打印测试 +export const printTestSimple = function (printerid) { + printerid = printerid || uni.getStorageSync("ble_printerId") + if (printerid) { + if (printerid != null && printerid.length > 0) { + var data = { + name: "鹤山市捷仕克汽车配件有限公司", + } + // 标签开始 + var str = " ! 0 200 200 350 1 " + "\r\n" + // str += "PAGE-WIDTH 600" + "\r\n" + // 标签内容 + str += "TEXT 24 0 10 10 " + data.name + "\r\n" + + str += "PRINT " + "\r\n" + print(printerid, str) + } + } else { + uni.showModal({ + title: "提示", + content: "请先选择已配对的蓝牙打印机, 再进行测试.", + showCancel: false, + }) + } +} + export const IsNullOrEmpty = function (obj) { if (obj == null || obj.length == 0) { return true diff --git a/components/tpx-bluetooth-print/print/tanexPrinterUniSdk.js b/components/tpx-bluetooth-print/print/tanexPrinterUniSdk.js index 85dbace..6c78dc9 100644 --- a/components/tpx-bluetooth-print/print/tanexPrinterUniSdk.js +++ b/components/tpx-bluetooth-print/print/tanexPrinterUniSdk.js @@ -26,7 +26,7 @@ var tanexPrinter = { [名称] 开始命令 [格式] ! {offset} 200 200 {height} {qty} [说明] {offset}:整个标签的水平偏移量 200:水平分辨率,203 点/英寸(8 点/mm) 200:垂直分辨率,203 点/英寸(8 点/mm) {height}:标签最大高度,点为单位 {qty}:打印标签的数量,最大1024 张 [实例] Input: Output: ! 0 200 200 210 1 TEXT 4 0 30 40 Hello World Hello World FORM PRINT */ tanexPrinter.init = function(maxHeight) { - data = "! 0 200 200 " + maxHeight + " 1\r\n" + data = " ! 0 200 200 " + maxHeight + " 1\r\n" tanexPrinter.addCommand(data) }; @@ -83,12 +83,16 @@ var tanexPrinter = { } // console.log('===>setBitmapCmd:',JSON.stringify(r)) } + tanexPrinter.addText = function(text) { + data = `TEXT 24 0 10 10 ${text}\r\n` + tanexPrinter.addCommand(data) + }; /* [名称] 设置打印命令 [格式] {command} [说明] {command}:PRINT 在CPCL 指令模式下,打印命令终止和打印文件,这是最后的一条命令;执行打印命 令后,打印机退出控制段,在打印命令后,必须跟一个回车。 如果打印中出错,等待错误恢复后重新打印。 [实例] Input: ! 0 200 200 210 1 …………… PRINT */ tanexPrinter.setPagePrint = function() { - data = "PRINT\r\n" + data = "PRINT \r\n" tanexPrinter.addCommand(data) }; diff --git a/components/tpx-bluetooth-print/render-template-native.vue b/components/tpx-bluetooth-print/render-template-native.vue index e6b6cb4..1445bbc 100644 --- a/components/tpx-bluetooth-print/render-template-native.vue +++ b/components/tpx-bluetooth-print/render-template-native.vue @@ -69,8 +69,8 @@ export default { prtInstance.setPagePrint() let commond = prtInstance.getPrintCmd() console.log("打印命令组装完成,开始打印=====") - // printModule.print(deviceId, commond) - printModule.printTest(deviceId) + printModule.print(deviceId, commond, true) + // printModule.printTestSimple(deviceId) }) },