在厂里做erp,有要求写一个扫码枪扫描二维码生成的demo,并用打印机打印出来。

需求:

1. 使用扫码枪扫描二维码,获取内容

2. 把内容转成二维码显示到页面

3. 打印这个二维码

使用扫码枪扫描二维码会产生二维码内容的格式:

QR026;二维码内容,   例: QR026;1.03.01.S0578M018:M:75:0004,  (扫码枪编号+分号+二维码内容+逗号)

使用到的类库有:jQuery,qrcode两个。(jquery.min.js 和 qrcode.js)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"><script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/qrcode.js"></script><title>index从这开始</title>
</head>
<body>
请进行操作:<input type="button" value="扫描" onclick="scan()">
<input type="button" value="获取扫描的内容" onclick="getScanValue()">
<input type="button" value="手动输入条码" onclick="inputScanValue()">
<input type="button" value="打印二维码" onclick="doPrint()">
<span id="scan_msg" style="display:none;">等待扫描......</span>
<input id="text_code" style="width:10px;position: absolute;top:-200px;"><!--startprint-->
<div id="qrcode"></div>
<!--endprint--></body><script type="text/javascript">//new QRCode(document.getElementById("qrcode"), "http://www.runoob.com");// 设置要生成二维码的链接var scanFunction=null;//定义一个空函数//扫描
function scan(){$("#text_code").val("")document.getElementById("text_code").focus();$("#scan_msg").show();$("#scan_msg").text("等待扫描......");//用Interval函数不断扫描扫码枪的输入值scanFunction=setInterval(function(){var elText =$("#text_code").val();//不为空并且最后一个字符为逗号才进行生成二维码if(elText!="" && elText.slice(elText.length-1,elText.length)==","){$("#scan_msg").text("扫描完成!");makeCode();}else{}},3000);
}//手动输入扫描条码值
function inputScanValue(){var inputScanValue = prompt("请输入条码值:","1.03.01.S0578M018:M:75:0004");//如果返回的有内容if(inputScanValue){$("#scan_msg").show();//扫码枪模拟分号和逗号$("#text_code").val(";"+inputScanValue+",");$("#scan_msg").text("完成!");makeCode();} else {}
}//过滤文字
function fiterText(oldText){//扫描出的文字例子:QR026;1.03.01.S0578M018:M:75:0004,//过滤扫码枪编号和最后一个逗号var return_text=oldText.slice(oldText.indexOf(";")+1,oldText.length-1);return return_text;
}//获取扫描的文字
function getScanValue(){//获取title属性的值var scanedText =$("#qrcode").attr("title");alert(scanedText);
}var qrcode = new QRCode("qrcode");
//生成二维码
function makeCode () {  var elText =$("#text_code").val();if (elText==null | elText=="") {$("#text_code").focus();return;}qrcode.clear(); //清除之前的二维码数据var fiterText_value=fiterText(elText);//改变title值$("#qrcode").css("title",fiterText_value);qrcode.makeCode(fiterText_value);clearInterval(scanFunction);//清除Interval函数
}//打印
function doPrint() {var bdhtml=window.document.body.innerHTML;sprnstr="<!--startprint-->"; //开始打印标识字符串有17个字符eprnstr="<!--endprint-->"; //结束打印标识字符串prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); //从开始打印标识之后的内容prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); //截取开始标识和结束标识之间的内容window.document.body.innerHTML=prnhtml; //把需要打印的指定内容赋给body.innerHTMLwindow.print(); //调用浏览器的打印功能打印指定区域window.document.body.innerHTML=bdhtml; // 最后还原页面
}</script></html>

使用到的技术很简单,就几行代码,但是做完了这demo就得摸鱼了,不如加代码优化体验,就有了如上的代码。

页面效果图:

http://localhost:8080/index

点击【手动输入条码】:

点击【打印二维码】:

原本关键代码如下

把文字内容转为二维码图片:(先导入QRCode.js包)

原文链接:https://www.runoob.com/w3cnote/javascript-qrcodejs-library.html

<div id="qrcode"></div>
<script type="text/javascript">
new QRCode(document.getElementById("qrcode"), "二维码内容");  // 设置要生成二维码的链接
</script>

打印内容到打印机:(原生JS)

原文链接:https://blog.csdn.net/weixin_43292447/article/details/83993416

<!--startprint-->
<div id="qrcode">
我就是要打印的内容
</div>
<!--endprint--><!--上面是div,下面是js--><script type="text/javascript">
//打印
function doPrint() {var bdhtml=window.document.body.innerHTML;sprnstr="<!--startprint-->"; //开始打印标识字符串有17个字符eprnstr="<!--endprint-->"; //结束打印标识字符串prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); //从开始打印标识之后的内容prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); //截取开始标识和结束标识之间的内容window.document.body.innerHTML=prnhtml; //把需要打印的指定内容赋给body.innerHTMLwindow.print(); //调用浏览器的打印功能打印指定区域window.document.body.innerHTML=bdhtml; // 最后还原页面
}
</script>

【工厂开发:使用扫码枪生成二维码并打印】使用 扫码枪用JavaScript 生成二维码,并打印二维码相关推荐

  1. PHP开发日志 ━━ php、javascript生成二维码的三种方法

    最简单最实例的goolge开源方法 推荐手册:php完全自学手册 1.google开放api 代码如下: $urlToEncode="http://www.helloweba.com&quo ...

  2. 前端实现带二维码的工厂物料标签,发票生成以及打印(vue框架),以及监听浏览器打印事件的钩子函数

    首先用一个变量来存放后台传过来的票据的数据,我们就用allPrintData来存放,然后在模板中,创建一个新的dom节点 <div id='printArea'></div> ...

  3. 使用JavaScript生成二维码教程-附qrcodejs中文文档

    使用javascript生成二维码 依赖jquery 需要使用到的库 https://github.com/davidshimj... DIV <div id="qrcode" ...

  4. javascript生成二维码

    http://www.w3dev.cn/article/20140617/javascript-create-QR-code.aspx jquery.qrcode.js 是居于jquery类库的绘制二 ...

  5. 用QRCode.js制作二维码的生成器(qrcode.makeCode方法生成二维码)

    现在前端二维码的生成器有很多,像草料二维码生成器,联图二维码生成器等这些在线生成器都是生成功能比较强大,生成的二维码比较精美的在线生成器,看着比较高大上,那么他们的实现原理?就是通过QRCode.js ...

  6. 利用JavaScript生成二维码并且中间有logo

    一.描述 描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件,使用它可以很方便的在页面上生成二维条码.此插件是能够独立使用的,体积也比较     ...

  7. vue 中生成带logo的二维码vue-qr(可换背景) 利用qrcode生成二维码

    vue 中生成带logo的二维码 这里运用了一个插件 vue-qr npm install vue-qr --save <template><div><vue-qr :c ...

  8. 【Exception】微信小程序,配置普通链接二维码规则 文件校验失败问题 校验文件检查失败 扫普通链接二维码打开小程序

    [Exception]微信小程序,配置普通链接二维码规则 文件校验失败问题 校验文件检查失败 扫普通链接二维码打开小程序 一.问题描述 1.公司业务有个需求,扫描普通的二维码,跳转到小程序的某个页面, ...

  9. 想用二维码推广应用,如何保证 Andriod 用户和 iOS 用户扫描同一个二维码后获得相应的 App ?

    想用二维码推广应用,如何保证 Andriod 用户和 iOS 用户扫描同一个二维码后获得相应的 App ? 这个问题纠结了好些天,后来想到的办法是:把桥页地址生成二维码,扫描后跳到桥页,在桥页判断平台 ...

  10. 二维码彩色广告招牌的切割制作问题(C#.net下对彩色二维码圆角样式及改进)...

    原文:二维码彩色广告招牌的切割制作问题(C#.net下对彩色二维码圆角样式及改进) 我们知道,目前二维码还很少用于广告招牌的制作.但随着智能手机越来越普及,互联网等网络的应用也越来越广泛,作为连接物理 ...

最新文章

  1. juniper srx 出口负载均衡_直流微电网负载均流控制的新策略
  2. java hascode
  3. 【NLP-ChatBot】我们熟悉的聊天机器人都有哪几类?
  4. window7环境下安装neo4j server版本踩坑记录
  5. CF1419E-Decryption【数论,dfs】
  6. 前端学习(1806):前端调试之列表伪类练习二
  7. 前端学习(927):淘宝flexiblejs源码分析之pageshow原理
  8. ResourceManager里面Trackingui需要手动该ip
  9. [技术博客] 微信小程序的formid获取
  10. Tengine新增nginx upstream模块的使用
  11. 如何开发一款高大上的android应用的必备知识
  12. VirtualBox 6.1.4的共享剪贴板确实有问题,6.1.0正常
  13. eclipse汉化-设置语言包
  14. APP推广工具(总结)
  15. pytest+seleniumUI自动化框架设计
  16. Delphi7_Lite_Fullv7.3优化精简全功能版
  17. 计算机画图照片大小,电脑自带的画图工具怎么调整图片的大小?
  18. 半双工通信是指c语言,Linux下C语言实现半双工的UDP通信
  19. 新海诚没有参与制作的作品_新海诚作品天气之子作画更上一步 各种好玩的梗值得一观...
  20. oracle 的lag,oracle分析函数lag

热门文章

  1. 【干货分享】Win8系统连接蓝牙耳机声音低或者音质低高效解决办法!!!
  2. 华为路由器静态路由和ospf动态路由配置
  3. 对达梦数据库归档的简单理解
  4. ArcGIS教程:要素类基础知识(二)
  5. Node.JS中调用JShaman,加密JS代码
  6. Keychron Q1对于初入机械键盘改装领域的玩家,是非常适合的键盘
  7. MOD13Q1—NDVI数据处理流程
  8. JavaWeb和WebGIS学习笔记(四)——使用uDig美化地图,并叠加显示多个图层
  9. 嵌入式Arm学习笔记(3)
  10. Photoshop CS6画布缩在左上角