vue中生成条形码(jsbarcode)二维码(qrcodejs2)

Posted 小余又菜又爱玩前端

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue中生成条形码(jsbarcode)二维码(qrcodejs2)相关的知识,希望对你有一定的参考价值。

1.条形码插件jsbarcode

安装:npm install jsbarcode --save

引入:在需要生成条形码的页面引入即可

import JsBarcode from 'jsbarcode'

需要显示条形码的页面里

<img id="barcode1">

调用构造函数生成条形码

let barCode1 = this.info.marIdCode;
let barheight = this.imgHeight;
JsBarcode("#barcode1",barCode1,
    format:"CODE128",//条形码的格式
    width:1,//线宽
    height:barheight,//条码高度
    lineColor:"#000",//线条颜色
    displayValue:false,//是否显示文字
    margin:2//设置条形码周围的空白区域
)

2.二维码插件

安装:npm install qrcodejs2 --save

引入:同理,在需要生成二维码的页面中引入即可

import QRCode from 'qrcodejs2'

需要显示二维码的页面中

<div id="SetQRCode"></div>

根据自身需求逻辑使用

let qrCode = "#"+this.info.marId+"#"+this.info.supManufacturingBatch+"#"+this.info.exp+"#"+this.info.minflowId+"#"+this.info.num;
this.QRCode = qrCode;
let qrcodeDiv = document.getElementById("SetQRCode")
let qrcode = new QRCode(qrcodeDiv,
    text:this.QRCode,//二维码中的内容
    width:this.QRWidth,
    height:this.QRHeight,
    colorDark:"#000",//二维码颜色
    correctLevel: QRCode.CorrectLevel.L //容错率,L/M/H
)
this.qrcode = qrcode;

好啦,如果只需要将二维码展示出来,不需要点击按钮才生成二维码或不需要打印的小伙伴看到这里就行啦~

打印!!!

在写二维码打印的时候我真的栓q住了,呜呜呜~ 因为进入打印页面后,点击取消,再次点击打印我惊讶地发现给我生成了两个二维码,然后……嗯,没错,重复上述操作会一直新生成二维码。

因此需要删除之前生成的二维码。代码如下:

let qrCode = "#"+this.info.marId+"#"+this.info.supManufacturingBatch+"#"+this.info.exp+"#"+this.info.minflowId+"#"+this.info.num;
this.QRCode = qrCode;
let qrcodeDiv = document.getElementById("SetQRCode")
let qrcode = new QRCode(qrcodeDiv,
    text:this.QRCode,
    width:this.QRWidth,
    height:this.QRHeight,
    colorDark:"#000",
    correctLevel: QRCode.CorrectLevel.L
    
this.qrcode = qrcode;
// ………………………………………………………………(解决重复点击打印按钮会重复一直生成二维码)
let childs = document.getElementById("SetQRCode").childNodes;
for(let i = childs.length -2 ; i>=0 ; i--)
    document.getElementById("SetQRCode").removeChild(childs[i]);

jsbarcode 生成条形码,并将生成的条码保存至本地,附源码

导读

  以前生成条码都是外网网站上生成,因生产环境在内网中,上不了外网,只能在项目中生成相应规则,故将此方法整理下来。

html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>测试</title>
    <script src="https://cdn.bootcss.com/jsbarcode/3.8.0/JsBarcode.all.min.js"></script>
</head>
<body>
    <h1>hhhhhhhhhhhhhhhhhhhhhhh</h1>
    <div class="box">
        <img id="barcode" />
    </div>
    <input type="text" id="content" placeholder="请输入条码内容"/>
    <input type="button" id="autoIma" value="生成" onclick="CreateIma()"/>
    <input type="button" id="btnsavaImg" value="保存图片到本地" onclick="Download()" />
    <script>
        //生成条码
        function CreateIma() {
            var content = document.getElementById(\'content\').value;
            if (content == undefined || content == "") {
                alert("请输入条码内容!");
                return;
            };
            var barcode = document.getElementById(\'barcode\'),
                //str = "chenyanbin",
                options = {
                    format: "CODE128",
                    displayValue: true,
                    fontSize: 18,
                    height: 100
                };
            JsBarcode(barcode, content, options); //原生JS方式
        // $(\'#barcode\').JsBarcode(string, options); //jQuery方式
        }

        //将生成的条形码保存至本地
        function Download() {
            // 通过选择器获取img元素
            var img = document.getElementById(\'barcode\')
            // 将图片的src属性作为URL地址
            var url = img.src
            var a = document.createElement(\'a\')
            var event = new MouseEvent(\'click\')

            a.download = name || \'下载图片名称\'
            a.href = url

            a.dispatchEvent(event) //根据A标签的属性来搞事情
        };
    </script>
</body>
</html>

不支持中文!!!!

效果

 

项目下载(附js插件)

链接:https://pan.baidu.com/s/1nKtP5GbaEvQRs9ttTtWdAw 
提取码:7co8

以上是关于vue中生成条形码(jsbarcode)二维码(qrcodejs2)的主要内容,如果未能解决你的问题,请参考以下文章

jsbarcode 生成条形码,并将生成的条码保存至本地,附源码

vue条形码生成插件vue-barcode

JS 生成条形码(一维码)jsBarcode

条形码--JsBarcode

生成条形码插件 条形码--JsBarcode

vue环境中生成二维码