最近公司要求一周写一个关于条码扫描和打印功能的APP,然后对接系统数据,然而,公司只有我一个可以做的,我只能取巧开发了,于是在APPCAN和APICLOUD中选择了后者,别问我为啥,问了就是,后者开发舒服

关于条码扫描,我选了一个FNScanner,这个用来扫描还是挺好的,速度也不慢。开始上一个扫描的代码

 FNScanner = api.require('FNScanner');FNScanner.open({autorotation: true}, function(ret, err) {if (ret.content) {
//介个地方就是判断,如果扫到条码或者二维码了,你就可以放心大胆的用你扫到的东西去做你想做的事情了,嘿嘿嘿,不要慌,有时候也会因为条码不完整导致扫到的是什么鬼……ret.content这个值就是你要的玩意}});

然后扫描的功能就这样了,核心代码很少,记住,这个扫描模块是需要你先添加这个模块到你的项目中才能生效的,别哈戳戳的直接去写,然后过来问我,为啥提示报错,undefined!!我会敲断你的腿还会叫人砸你家玻璃的!!

然后第二步,就是解决打印条码功能,和生成条码功能了

要求:1、根据字符串生成对应的条码
2、输入数值,点击打印,则打印出对应数量的条码

话不多说,开工
生成条码我选择了printBleWifi模块的getBarCode方法,这玩意可以返回一个base64格式的一维码代码

var print = api.require('printBleWifi');print.getBarCode({string:fnsku},function(ret, err) {if (ret.code==0) {var base64 = ret.base64;//介玩意就是那一串base64的字符串啦,慢慢搞哈,不要急} else {alert('获取失败');}});

到了这一步,有人就要急了,我怎么打印呢,我打印纸和你的又不一样,怎么玩

我这个打印纸是一排两列的那种,总长度是83mm左右,高度是20mm,每行间隔是2mm,然后,中间间隔1-2mm,毕竟供货的哈麻皮公司生产也会有误差的,我用的打印模块是posPrinter,废话不多说,上代码

var printModule = api.require('posPrinter');var param ={taskList:[{printerAddr: printid,type:2,tscSetting:{width:86,height:20,gap:2},content:'<img left="-30" top="-20">'+base64+'</img><img left="306" top="-20">'+base64+'</img>'+'<text size="16" center="1" left="-160" bold="true" top="98">'+sku+'</text>'+'<text size="16" center="1" left="176" bold="true" top="98">'+sku+'</text>'//指的是打印机左边的,越大越往右偏移+'<text size="16" center="1" left="-150" bold="true" top="112">DO  NOT  RELABEL!  PLEASE!</text>'+'<text size="16" center="1" left="175" bold="true" top="112">DO  NOT  RELABEL!  PLEASE!</text>'+'<text size="14" center="1" left="-75" bold="true" top="128">'+getdates()+'</text>'+'<text size="14" center="1" left="255" bold="true" top="128">'+getdates()+'</text>',//<qr>标签表示打印二维码//tagContent里面所有标签都支持旋转属性,如rotate="45"表示旋转45度//text标签可以使用center="1"表示居中,如果居中时,设置left="-10",表示居中后,再往左偏移10keepAlive:true,       //usb或者蓝牙打印机,建议把keepAlive设为true,在打印完毕后执行关闭操作copyNum: num}]};// alert(num);printModule.print(param, function (ret, err) {if(ret!=''&&ret!=undefined){console.info(JSON.stringify(ret));alert('打印'+ret.result);}else{console.info(JSON.stringify(err));alert('打印机未连接或者正在被占用,请连接其他打印设备或稍后再试');}});

搞到这里就差不多了,反正我是被逼着写这个功能的,上面3个模块,有2个是要钱的,还不便宜,如果只是公司内部使用,我推荐你用测试版本玩玩就好了,等大家都习惯了,再去缴费升级正式版本,别想着不给钱,人家也难做,安啦

最后,还是告诉大家,学无止境,多勤多习……我是一个JAVA全栈开发攻城狮,我为自己带盐,齁死我了,拜拜

有关于APICLOUD打印条码功能的操作相关推荐

  1. 多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...

    进程调度的功能与时机 一.进程调度的功能 进程调度功能由操作系统内核的进程调度程序完成,在Linux 内核中,进程调度功能的实现从调用内核函数schedule()开始.进程调度的功能是按照某种策略和算 ...

  2. oracle ebs 采购订单 为员工分配职务,oracle—EBS-采购功能点操作手册

    oracle-EBS-采购功能点操作手册 浙大软件学院学生操作手册 PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更 ...

  3. MTK MODEM(1)--- MTK平台NV基本功能与操作

    MTK平台NV基本功能与操作  一.NVRAM基本概念  NV就是Non Volatile缩写,就是非易失性存储性,通俗来说,就是即使系统掉电后,存储在该存储器的数据也不会丢失.  为什么要备份恢复, ...

  4. 「Photoshop2021入门教程」新功能——快速操作

    PS新手教程哪里有?小编为大家带来Photoshop2021新手系列教程,今天我们来学习PS新功能--快速操作面板. 打开图片 菜单栏点击帮助-Photoshop帮助... 弹出发现窗口,选择快速操作 ...

  5. Parallels Desktop 安装Win 10提示“安全启动功能防止操作系统启动”该怎么解决?

    Parallels Desktop 安装 Windows10 提示"安全启动功能防止操作系统启动"该怎么解决?未来小编就来帮大家解决这个难题!一起来看以下教程吧- pd17虚拟机 ...

  6. Parallels Desktop 安装 Windows10 提示“安全启动功能防止操作系统启动”怎么解决?

    Parallels Desktop 17.1.0 安装 Windows10 提示"安全启动功能防止操作系统启动"怎么解决?如下图提示: 安装 Parallels Desktop 1 ...

  7. oracle—ebs_采购功能点操作手册,oracle—EBS_采購功能点操作手册.doc

    oracle-EBS_采購功能点操作手册 PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更新记录 版本日期姓名说明1 ...

  8. oracle采购操作手册,oracle-ebs采购功能点操作手册.doc

    oracle-ebs采购功能点操作手册.doc PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更新记录 版本日期姓名 ...

  9. Oracle在采购部增加一名员工,ORACLEEBS采购功能点操作手册1.doc

    PO模块功能点操作手册 作者:韩业邦 李亚军 创建日期:2012年3月6日 更新日期:2012年3月7日 版本:1.0 文档控制 更新记录 版本日期姓名说明1.02012年3月6日韩业邦 根据po的知 ...

  10. xt6使用技巧_凯迪拉克XT6中控屏幕功能使用操作图解

    2020款昂克赛拉在外部配置上,全系标配远近光一体式LED大灯.LED尾灯.双边共两出式排气.而1.5L和2.0L车型不同之处在于前格栅配色,同时轮圈规格分别为16英寸和18英寸.此外,中高配车型将提 ...

最新文章

  1. ES不香吗,为啥还要ClickHouse?
  2. jdbc连接mysql驱动方式_JDBC连接数据库系列教程 – JDBC注册驱动的常见方式
  3. Flutter Widget
  4. python3 编写守护进程程序思路
  5. 《Visual C++数字图像模式识别技术详解(第2版)》一3.4 形状特征
  6. linux 安装go编译器,CentOS 7 安装 go 语言开发环境
  7. 向往的生活---考研路上的励志鸡汤
  8. 《研磨设计模式》chap18 状态模式state(2)模式介绍
  9. 属性提取器:获取ListView即时更新其元素的最佳方法
  10. 提取多个字段_动态合并多个工作表,数据再多也不怕
  11. 国产 14nm 迎曙光,进口荷兰光刻机顺利入厂!
  12. python3.7 keras和tensorflow兼容_解决Keras 与 Tensorflow 版本之间的兼容性问题
  13. 数据保护:从“随意架构”到简单可控
  14. 教你如何构建异步服务器和客户端的 Kotlin 框架 Ktor
  15. 全国大学生电子设计竞赛参赛分享
  16. BT4中文版(集成spoonwep2/spoonwpa)下载地址
  17. 【脚本解析笔记】文件批量重命名
  18. 26. 简述队列和栈的异同
  19. P1606 [USACO07FEB]白银莲花池Lilypad Pond
  20. 微信网页授权的2种方式

热门文章

  1. Vue中使用clipboard实现复制功能
  2. 两个PDF怎么合成在一起
  3. linux dns劫持转发,linux的dns被劫持
  4. 关于软件开发的那些事(二):聊聊协同打单的一些心得体会
  5. 电脑网络异常故障解决办法
  6. 计算机二级请假条,单位员工病假请假条范文模板
  7. 中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录
  8. PyCharm2017破解步骤
  9. 评估并改善模型的预测性能
  10. 使用xlwt将数据保存到excel文件中,python