更新记录
v1.1(2022-04-11) 下载此版本
文本标签打印 混合打印
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:6.0 - 10.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原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
此文档供有 uni-app 开发经验的人阅读。当 uni-app 需要调用 A980 手持打印机的时候,需要用到我们原生插件包。使用自定义基座打包生成 APP。
说明,本程序运行在手持设备 A980 android 9 新版上的手持打印机上,普通安卓设备运行
第一步:导入
// 获取 module
var printModule = uni.requireNativePlugin("lianjiao-pda-9")
第二步:测试
先初始化,否则偶发性报错34,在onload里APP启动时候就直接调用。
printModule.init((ret) => {
uni.showToast({
title: ret,
duration: 2000
});
});
测试打印
printModule.sendControlCommand({
"name": "test"
},(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
第三步:超市小票打印
var printData = {
name:"printMix",
top:8,
forwardMorePaper:8,
flag:"普通纸混合打印",
runOnNewThread:true,
data:[{
printType:0,
text:" [停车告知单] \n",
concentration:15,//打印浓度,一维码建议设置为20,二维码设置为15,文字也是15
align:1,
lineHeight:0,
isBold:false,
isDoubleHeight:true,
isDoubleWidth:true,
isUnderLine:true
},{
text:"车牌:京A88888\n",
concentration:15,//打印浓度,一维码建议设置为20,二维码设置为15,文字也是15
align:0,
lineHeight:0,
isBold:false,
isDoubleHeight:true,
isDoubleWidth:false,
isUnderLine:false
},{
text:"车型:小型车\n" +
"用户类型:临时卡\n" +
"路段:人民路一段\n" +
"车位:RM-01001\n" +
"入场时间:2022-02-23 14:08\n" +
"收费员:张三\n" +
"电话:13800000000\n" +
"--------------------------------\n" +
"温馨提示:\n" +
"扫码缴费后,车辆不离场继续停放,存在恶意逃费行为的,将按第一次入场时间继续计费;\n" +
"路边临时停车属于车位租赁停放,不承担车辆和财物保管责任。\n" +
"服务监督电话:12315\n" +
"--------------------------------\n" +
"请扫码缴费:" ,
concentration:15,//打印浓度,一维码建议设置为20,二维码设置为15,文字也是15
align:0,
lineHeight:0,
isBold:false,
isDoubleHeight:true,
isDoubleWidth:false,
isUnderLine:false
},{
printType:2,
text:"1234567890",
desiredWidth:250,
desiredHeight:250,
displayCode:true,
concentration:15,
isAlignCenter:true
}]
}
printModule.sendControlCommand(printData,(ret) => {
uni.showToast({
title: ret,
duration: 2000
});
});
打印模块说明
当发送的对象 name 为 printMix 的时候,则为自定义模版打印。这个时候 data 必须有数据。 数据有三中形态 条形码,二维码和文字。用printType来区分,默认printType=0; printType = 0 表示文字 printType = 1 条形码 printType = 2 二维码 width:宽度; height:高度;
第四步:标签打印
标签打印适合不干胶打印,可打印形态也是三种,文字,条形码,二维码,但是不同的是,每个内容都需要自己设定x轴和y轴的坐标
printModule.sendControlCommand({
'name': 'printBmpLabel',
'data':[{
printType:1,
text:"713300650011",
desiredWidth:300,
desiredHeight:40,
displayCode:false,
left:-44,
top:0
},{
printType:0,
text:"W.T.P/N:713300650011",
textSize:24,
x:0,
y:64
},{
text:"QTY:679",
x:0,
y:90
},{
text:"Mfr P/N:P227012G",
y:116
},{
text:"DateCode:220114",
y:142
},{
text:"Lot NO:0114003",
y:168
},{
text:"PO NO:W221122444",
y:194
},{
text:"Supplier:PBH",
y:220
},{
text:"2022/1/19 11:23:30",
y:246
},{
text:"MS:S96801MAINFPC",
y:272
},{
text:"MSL:1",
x:260,
y:72
},{
text:"COO:CN",
x:260,
y:98
},{
printType:2,
text:"713300650011|679|P227012G|220114|0114003|W221122444|PBH|S96801MAINFPC|1|CN",
desiredWidth:170,
desiredHeight:170,
displayCode:false,
left:225,
top:105
}]
},(ret) => {
uni.showToast({
title: ret,
duration: 2000
});
});
第七步:检测黑标
当打印完成后,如果是不干胶打印的,打印完一个之后没有走到退纸位置,则可以调用检测黑标,则会调用检测方法,走纸到下一个标签开始位置。如果觉得撕纸还是不方便,可以再手动走纸一个单位。 记得黑标检测应该再打印完成事件触发回调之后再调用。
printModule.sendControlCommand({
'name': 'checkBlack'
},(ret) => {
uni.showToast({
title: ret,
duration: 2000
});
});