更新记录
1.0.0(2024-05-16) 下载此版本
适配研科打印机
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:7.0 - 11.0 | armeabi-v7a:支持,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
天波-研科打印机原生插件使用说明
1、插件说明 本插件是天波C1P双屏机专用SDK, 插件主要集成了研科小票打印机设备 。
2、使用步骤
1)导入插件
2)注册插件、配置数据监听方法
3、代码示例
<template>
<view>
<view>
<button type="primary" @click="initUsbThermalPlugin">初始打印插件</button>
<button type="primary" @click="selfTestPage">打印自检信息</button>
<button type="primary" @click="printContentTest">打印文本测试</button>
<button type="primary" @click="printBarcodeTest">打印条码测试</button>
<button type="primary" @click="printQrcodeTest">打印二维码测试</button>
</view>
</view>
</template>
<script>
// 获取 module
var icodPrintPlugin = uni.requireNativePlugin("ls-icod-print-plugin");
/***
天波C1P 研科打印机原生插件使用说明
本页面只演示打印小票接口
接口清单
1、初始打印机模块
方法:initUsbThermalPlugin
输入参数:
输出参数:
2、打印自检页
方法:selfTestPage
输入参数:
输出参数:
3、打印机走纸
方法:printPaperWalk
输入参数:walkLine 走纸行数 walkLine * 0.125 毫米
输出参数:
4、打印机重置 一般在打小票之前先重置一次,会清空之前设置的样式和参数
方法:printReset
输入参数:
输出参数:
5、设置打印灰度 打二维码时一般设置此参数,否则二维码会非常黑
方法:setPrintGray
输入参数:gray 灰度参数 1-4以内
输出参数:
6、对齐模式
方法:setPrintAlign
输入参数:alignMode 0 左对齐 1 居中对齐 2 右对齐
输出参数:
7、设置左边距
方法:setPrintLeftIndent
输入参数:leftDistance 左边距 0-255以内,单元是0.125mm
输出参数:
8、设置行间距
方法:setPrintLineSpace
输入参数:lineSpace 行间距,单位点行, n*0.125 毫米 缺省值为 30
输出参数:
9、设置加粗
方法:setPrintBold
输入参数:bold true 字体加粗,false 字体不加粗
输出参数:
10、设置字体大小
方法:setPrintTextSize
输入参数:size 字体大小,范围为0-7 正常为0
输出参数:
11、打印条码
方法:printBarcode
输入参数:barcodeStr 条码值
barcodeWidth 条码宽度
barcodeHeight 条码高度
输出参数:
12、打印二维码
方法:printQrcode
输入参数:qrcodeStr 二维码值
qrcodeSize 二维码宽高尺寸
输出参数:
13、混合多样打印
方法:printMultiple
输入参数: commands 指令内部的 为command 和 params参数
输出参数:
14、打印字符串
方法:printString
输入参数: str 打印内容,多行内容使用 \n 换行
输出参数:
15、切纸
方法:cutPaper
输入参数:m 66 保留一点不切
输出参数:
*****/
export default {
data() {
return {
}
},
onLoad() {
},
methods: {
initUsbThermalPlugin() {
icodPrintPlugin.initUsbThermalPlugin({}
,(ret) => {
uni.showToast({
icon: 'none',
title: JSON.stringify(ret),
duration: 3000
});
});
},
selfTestPage() {
icodPrintPlugin.selfTestPage({}
,(ret) => {
uni.showToast({
icon: 'none',
title: JSON.stringify(ret),
duration: 3000
});
});
},
printContentTest(){
/**
* 测试打印内容
*/
const content =
"\n 烧烤"
+ "\n---------------------------"
+ "\n日期:2015-01-01 16:18:20"
+ "\n卡号:12378945664"
+ "\n单号:1001000000000529142"
+ "\n---------------------------"
+ "\n 项目 数量 单价 小计"
+ "\n秘制烤羊腿 1 56 56"
+ "\n烤火鸡 2 50 100"
+ "\n烤全羊 1 200 200"
+ "\n秘制烤鸡腿 1 56 56"
+ "\n烤牛腿 2 50 100"
+ "\n烤猪蹄 1 200 200"
+ "\n 合计:1000:00元"
+ "\n----------------------------"
+ "\n本卡金额:10000.00"
+ "\n累计消费:1000.00"
+ "\n本卡结余:9000.00"
+ "\n----------------------------"
+ "\n 地址:广东省佛山市南海区桂城街道桂澜南路45号鹏瑞利广场A317.B-18号铺"
+ "\n欢迎您的再次光临\n";
//封装指令集合
let commands = [];
//重置打印选项
commands.push(this.$options.methods.buildCommands('printReset', {}));
//对齐模式 0 左对齐 1 居中对齐 2 右对齐
commands.push(this.$options.methods.buildCommands('setPrintAlign', {'alignMode': 0}));
//设置左边距,0-255,单元是0.125mm
commands.push(this.$options.methods.buildCommands('setPrintLeftIndent', {'leftDistance': 0}));
//行间距,单位点行,0-255
commands.push(this.$options.methods.buildCommands('setPrintLineSpace', {'lineSpace': 0}));
//设置粗体
commands.push(this.$options.methods.buildCommands('setPrintBold', {'bold': false}));
//设置字体大小 0-7以内 正常为0
commands.push(this.$options.methods.buildCommands('setPrintTextSize', {'size': 0}));
//设置灰度参数 1-4以内
commands.push(this.$options.methods.buildCommands('setPrintGray', {'gray': 1}));
//打印内容
commands.push(this.$options.methods.buildCommands('printString', {'content': content}));
//走纸 n * 0.125 毫米
commands.push(this.$options.methods.buildCommands('printPaperWalk', {'walkLine': 50}));
//切纸
commands.push(this.$options.methods.buildCommands('cutPaper', {'m': 66}));
//调用打印接口
icodPrintPlugin.printMultiple({'commands': commands}
,(ret) => {
uni.showToast({
icon: 'none',
title: JSON.stringify(ret),
duration: 3000
});
});
},
printBarcodeTest(){
//封装指令集合
let commands = [];
commands.push(this.$options.methods.buildCommands('printReset', {}));
commands.push(this.$options.methods.buildCommands('setPrintGray', {'gray': 1}));
commands.push(this.$options.methods.buildCommands('printBarcode', {'barcodeStr': '12345678123456', 'barcodeWidth': 320, 'barcodeHeight': 176}));
commands.push(this.$options.methods.buildCommands('printString', {}));
commands.push(this.$options.methods.buildCommands('printPaperWalk', {'walkLine': 20}));
//调用打印接口
icodPrintPlugin.printMultiple({'commands': commands}
,(ret) => {
uni.showToast({
icon: 'none',
title: JSON.stringify(ret),
duration: 3000
});
});
},
printQrcodeTest(){
//封装指令集合
let commands = [];
commands.push(this.$options.methods.buildCommands('printReset', {}));
commands.push(this.$options.methods.buildCommands('setPrintGray', {'gray': 1}));
commands.push(this.$options.methods.buildCommands('printQrcode', {'qrcodeStr': 'wertyuiodfhj', 'qrcodeSize': 256}));
commands.push(this.$options.methods.buildCommands('printString', {}));
commands.push(this.$options.methods.buildCommands('printPaperWalk', {'walkLine': 20}));
//调用打印接口
icodPrintPlugin.printMultiple({'commands': commands}
,(ret) => {
uni.showToast({
icon: 'none',
title: JSON.stringify(ret),
duration: 3000
});
});
},
buildCommands(command, params){
return {'command': command, 'params': params};
}
}
}
</script>