Uniapp示例代码
<template> <view> <view> <button @click="getversion()">getversion</button> <button @click="printText()">printText</button> </view> <text v-for="(item,index) in msglist">{{item}}\n</text> </view> </template> <script> const icodzz = uni.requireNativePlugin('zzzili-icodzz'); export default { data() { return { msglist: [] } }, onLoad() { this.msglist.push('start test print') }, methods: { getversion: function() { this.msglist.push(icodzz.getVersion()); }, printText: function() { this.msglist.push(icodzz.initSDK()); this.msglist.push('connectUSB'+icodzz.connectUSB()); this.msglist.push('init'+icodzz.init()); this.msglist.push('setEmphasizedMode'+icodzz.setEmphasizedMode(1)); this.msglist.push('printString'+icodzz.printString("深圳研科\n深圳研科\n深圳研科\n深圳研科\n", 'gbk', true)); this.msglist.push('printQRCode'+icodzz.printQRCode("testqrcode", 200,false)); this.msglist.push('printFeed'+icodzz.printAndFeedLine(5)); }, } } </script> <style> </style>
icod SDK 使用指南(来自于官方icod sdk文档)
一、添加权限:
<uses-feature android:name="android.hardware.usb.host" /> <!-- Allows applications to access information about networks --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- Allows applications to change network connectivity state --> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- Allows applications to enter Wi-Fi Multicast mode --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- Internet permission --> <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <!-- SDCard permission --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- Bluetooth permission --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
二、引用插件
const icodzz = uni.requireNativePlugin('zzzili-icodzz');
三、简单的初始化
icodzz.getVersion()//获取sdk版本 icodzz.initSDK()//初始化SDK
四、返回值声明
0: 为成功 -1: 为失败 -2: 参数错误 -3: 为字符长度不支持 -4: 字符不支持(后面两个是用于条码打印的)
五、函数调用
1、连接打印机 链接USB打印机:connectUSB(); 链接Bluetooth打印机:connectBluetooth(); 链接串口打印机:connectSerial(String filePathname, int baudRate, int flowControl);//device:串 baudRate:波特率 flowControl:是否开流控 连接wifi打印机:connectWifi(String site, int port);//Site:ip地址 Port:端口号 连接USBNative打印机:connectUSBNative(); 2、关闭连接和释放资源 函数:disconnect() 参数: 无 3、写入指令 发送自定义指令 函数:sendOrder(byte[] cmd) 参数: cmd - 指令数组 函数:sendOrder(byte[] cmd,int timeOut) 参数: cmd - 指令数组 timeOut - 超时时间 单位ms 4、写入指令 函数:writeIO(byte[] writeBuffer,int offsetSize,int writeSize,int waitTime) 参数: writeBuffer - 指令字节数组 offsetSize - 偏移量,一般为0 writeSize - 数组大小 waitTime - 等待时间 5、读取指令 函数:readIO(byte[] readBuffer,int offsetSize,int readSize,int waitTime) 参数: readBuffer - 指令字节数组 offsetSize - 偏移量 readSize - 读取大小 waitTime - 等待时间 6、初始化 函数:init() 参数: 无 说明:这个指令 用于清空缓冲区和恢复默认值 一般在打印图片前或者后调用,避免打不全对后面数据的影响 可以跟 initAllPrinter方法一起用 7、完全初始化 函数:initAllPrinter(int n) 参数: n - 1.错误恢复从错误行开始打印 2.错误恢复和清除缓冲内容 8、设置日志输出文件标志 函数:setOutput(boolean output) 参数: output - true.开启日志输出 9、实时状态传送 函数:getStatus() 参数: 无 10、打印字符串 函数:printString(String text) 参数: text?- 打印的字符串 函数:printString(String text,String charsetName,boolean isFeed) 参数: text?- 打印的字符串 charsetName - 字符集 isFeed - 是否 换行 11、打印光栅位图 函数:printRasterBitmap(Bitmap bitmap) 参数: bitmap- 位图 函数:printRasterBitmap(Bitmap bitmap, boolean toGray) 参数: bitmap- 位图 toGray - true 变灰 函数:printRasterBitmap(Bitmap bitmap,boolean toGray,int timeOut) 参数: bitmap- 位图 toGray - true 变灰 timeOut - 超时时间 函数:printRasterBitmap(Bitmap bitmap,boolean toGray,int timeOut, boolean check) 参数: bitmap- 位图 toGray - true 变灰 timeOut - 超时时间 check - 是否需要检测 数据是否已经全部下发到打印机.解决第一张打印正常第二张乱码的问题. 函数:printRasterBitmap(Bitmap bitmap,boolean toGray,int timeOut,boolean isJini,boolean check) 参数: bitmap- 位图 toGray - true 变灰 timeOut - 超时时间 isJini - 是否使用本地方法 check - 是否需要检测 数据是否已经全部下发到打印机.解决第一张打印正常第二张乱码的问题. 12、打印二维码 函数:printQRCode(String text,int modeSize,boolean isCut) 参数: text - 为二维码内容 modeSize - 设置条码大小(1FAIL6) 默认为6 isCut - 打印二维码后是否切纸 13、PDF条码打印 函数:printPDFCode(String text,int errorSize,int hSize,int vSize) 参数: text - 为PDF条码内容 errorSize - 纠错等级,可控制条码大小建议4-8 hSize - 宽度 0-30(建议0) vSize - 高度 3-90(建议0) 14、打印并换行 函数:printFeed() 参数: 无 15、打印并退纸 函数:printBackFlow(int n) 参数: n - 退纸 n/144英寸 16、页模式下回标准模式 函数:printAndBackToStd() 参数: 无 17、实时打印机请求 函数:printerRequestsRealTime(int type) 参数: type - 1.从错误恢复并从错误出现的行开始重新开始打印 2.在清除接收和打印缓冲区后从错误恢复 18、选择打印模式 函数:setFontStyle(int type) 参数: type - 取值如下[0-255] |位 |关/开|十六进制码|十进制码|功能| |----|-----|---------|--------|----| |0 |关 |00 |0 |字符字型A (12 × 24)。| |0 |开 |01 |1 |字符字型B (9 × 17)。| |1 |- | - |- |未定义| |2 |- | - |- |未定义| |3 |关 |00 |0 |解除加重模式| |3 |开 |08 |8 |设置加重模式| |4 |关 |00 |0 |解除倍高模式| |4 |开 |10 |16 |设置倍高模式| |5 |关 |00 |0 |解除倍宽模式| |5 |开 |20 |32 |设置倍宽模式| |6 |- |- |- |未定义| |7 |关 |00 |0 |解除下划线模式| |7 |开 |80 |128 |设置下划线模式| 19、设置字符右间距 函数:setCharRightSpace (int n) 参数: n - n*0.125毫米 20、设定 / 解除下划线 函数:setEnableUnderLine (int enable) 参数: enable -最低位有效:1为设定 0位解除 21、设置行间距 函数:setLineSpace (int n) 参数: n - n*0.125毫米 缺省值为30 22、设定/解除粗体打印 函数:setEmphasizedMode (int n) 参数: n -最低位有效:1为设定 0位解除 23、设置浓度 函数:setPrintColorSize (int n) 参数: n -仅支持1-4浓度 一般字体加重的浓度 24、设定/解除重叠打印 函数:setOverlapMode (int n) 参数: n -最低位有效:1为设定 0位解除 25、打印并进纸 函数:printAndFeedPaper (int n) 参数: n - n*0.125毫米 26、选择国际字符集 函数:setInterCharSet (int n) 参数: n –[0-13],默认为0 n 字符集 0 美国 1 法国 2 德国 3 英国 4 丹麦Ⅰ 5 瑞典 6 意大利 7 西班牙Ⅰ 8 日本 9 挪威 10 丹麦Ⅱ 11 西班牙Ⅱ 12 拉丁美洲 13 韩国 27、设置相对当前打印位置(nl+nh*256)*0.125 函数:setRelativePosition(int?nl, int?nh) 参数: nl - 0-255 nh - 0-255 28、在页模式,设置相对当前打印位置(nl+nh*256)*0.125 函数:setPageRelativePosition (int?nl, int?nh) 参数: nl - 0-255 nh - 0-255 29、全切 函数:fullCut () 参数: 无 30、半切 函数:halfCut () 参数: 无 31、选择对齐方式 函数:setAlignMode (int?type) 参数: type - 0为左对齐 ,1 为居中对齐,2 为右对齐 32、激活/禁止面板按键 函数:setEnablePanelButton (int?n) 参数: n -最低位有效:1禁止 0位激活 33、打印并进纸 n 行 函数:printAndFeedLine (int?n) 参数: n - n *设定的行间距 34、选择字符代码表 函数:setCharCodeTable (int?n) 参数: n – [0-5]、[16-19]、255 n 页 0 PC437[美国欧洲标准] 1 片假名 2 PC850[多语言] 3 PC860[葡萄牙语] 4 PC863[加拿大-法语] 5 PC865[北欧] 16 WPC1252 17 PC866[斯拉夫语 2] 18 PC852[拉丁语 2] 19 PC858[欧洲] 255 Space Page 35、将标记打印纸进纸到打印起始位置 函数:feedToStartPos () 参数: 无 36、执行测试打印 函数:doTestPrint (int n, int m) 参数: n - 0 为 basic sheet; 1 2 为卷纸 m - 1 让打印机进入十六进制;2 打印机状态打印;3 卷纸模式打印 37、设定左侧空白量(nl +nh*256)*0.125毫米 函数:setLeftMargin (int nL, int nH) 参数: nL - 0-255 nH - 0-255 38、选择裁纸模式并裁纸 函数:cutPaper (int m, int n) 参数: m – 66 (保留一点不切) n - 0 39、设置打印区域宽度 函数:setPrnAreaWidth (int nL, int nH) 参数: 宽度为 (nl +nh*256)*0.125毫米 82.5毫米纸宽型号 缺省值 nl=128,nh=2 79.5毫米纸宽型号 缺省值 nl=64,nh=2 60毫米纸宽型号缺省值 nl=192,nh=1 58毫米纸宽型号 缺省值 nl=176,nh=1 40、设置/解除平滑模式 函数:setEnableSmoothPrn ( int n) 参数: n – 最低位有效:1为设定 0位解除 41、设置条形码高度 函数:setBarCodeHeight ( int n) 参数: n – [0-255],默认为162 42、设置条形码宽度 函数:setBarCodeWidth ( int n) 参数: n – [2-16] 我方打印机范围为2-6 通用的打印机 2-16 所以有些值不管用 43、打印条形码 函数:printBarCode (int m, int n, String barcode) 参数: m –使用条码系统类型 n –使用条码系统类型 barcode–字符串 44、设置颠倒 函数:setReverse(boolean reverse) 参数: reverse - true 设置颠倒 false 取消颠倒 45、设置 / 解除顺时针 90 ° 旋转 函数:setRotate(int n) 参数: n - 0,48 解除 1,49设置 46、发送十六进制的字符串 函数:hexMsg (String msg, boolean isHex) 参数: msg - 格式是##0a 23 0d## isHex - true 数据是十六进制 false 是十进制