前端生成二维码/条形码

摘要:
在上一篇文章中,我们调用微信扫描界面,现在我们可以生成二维码和条形码。在我们的系统中,订单号用于生成二维码和条形码。司机扫描公众号中的二维码和条形码,并显示订单号,以确认订单是否可以签署。画布模式下生成的二维码如下所示。使用上一篇文章中的扫描,您可以在生成二维码时扫描参数:2.中文编码问题jquery qrcode使用charCodeAt()方法进行编码转换。

上一篇写到调用微信扫一扫接口,现在来生成二维码、条形码。

在我们的系统中,使用订单号生成二维码、条形码,司机在公众号内扫描该二维码、条形码之后显示订单号,以供确认该订单是否可以签收。

一、jquery.qrcode.min.js 生成二维码

1、使用步骤

(1)引入文件:

<script src="jquery-2.1.0.js"type="text/javascript"></script>
<script type="text/javascript"src="jquery.qrcode.min.js"></script>

(2)在页面放一个二维码容器:

<body onLoad="init()">
   <div id="qrcode"></div>
</body>

(3)使用qrcode 方法生成二维码:

functiongenerateQRCode(rendermethod, picwidth, picheight, url) {
    $("#qrcode").qrcode({
       render: rendermethod, //渲染方式有table方式和canvas方式
        picwidth, //宽度
       height:picheight, //高度
       text: utf16to8(url), //内容
       typeNumber:-1,//计算模式
       correctLevel:2,//二维码纠错级别
       background:"#ffffff",//背景颜色
       foreground:"#000000"  //二维码颜色
});
}
functioninit() {
    generateQRCode("table",200, 200, "test");
}

qrcode 方法中render 参数表示渲染方式,有 table 方式和 canvas 方式,canvas 方式如下:

$(function(){
        var qrcode = $('#qrcode').qrcode({
            render: "canvas", 
             120,
            height: 120,
            text: "SYDO1806090725140426"
        }).hide();
        //将生成的二维码转换成图片格式
        var canvas = qrcode.find('canvas').get(0);
        $('#qrcodeImg').attr('src', canvas.toDataURL('image/jpg'));
    });

其中将二维码转成图片形式,是方便转发,也可以不用,不用的话,qrcode 方法之后就不用用 hide() 方法了。

canvas 方式生成的二维码如下,利用之前上一篇的扫一扫,可以扫出生成二维码时候的参数(即qrcode 方法里的text 参数):

前端生成二维码/条形码第1张前端生成二维码/条形码第2张

2、中文编码问题

jquery-qrcode 是采用 charCodeAt() 方式进行编码转换的。而这个方法默认会获取它的Unicode编码,所以如果text 参数带有中文,在生成二维码前就要把字符串转换成UTF-8,然后再生成二维码。

可以通过下面函数来转换中文字符串:

//中文编码格式转换
        functionutf16to8(str) {
            varout, i, len, c;
            out = "";
            len =str.length;
            for (i = 0; i < len; i++) {
                c =str.charCodeAt(i);
                if ((c > 0x0001 || c == 0x0001) && (c < 0x007F || c == 0x007F)) {
                    out +=str.charAt(i);
                } else if (c > 0x07FF) {
                    out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
                    out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
                    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
                } else{
                    out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
                    out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
                }
            }
            returnout;
        }

3、generateQRCode 函数优化

将2说的中文问题加进 generateQRCode 函数:

functiongenerateQRCode(rendermethod, picwidth, picheight, url) {
            $("#qrcode").qrcode({
                render: rendermethod, //渲染方式有table方式(IE兼容)和canvas方式
                 picwidth, //宽度
                height:picheight, //高度
                text: utf16to8(url), //内容
                typeNumber:-1,//计算模式
                correctLevel:2,//二维码纠错级别
                background:"#ffffff",//背景颜色
                foreground:"#000000"  //二维码颜色

            });
        }

二、jquery-barcode生成条形码

直接贴例子:

<html>
<head>
    <meta charset="UTF-8">
    <title>生成条形码</title>
    <script type="text/javascript"src="jquery-2.1.0.js"></script>
    <script type="text/javascript"src="jquery-barcode.js"></script>
    <script type="text/javascript">
        $(function(){
            $("#bcTarget").barcode("123456789", "codabar",{barWidth:2, barHeight:30});
            $("#bcTarget2").barcode("1234567890128", "ean13",{barWidth:2, barHeight:30});  //SYDO180609
$("#genid").click(function(){
                varcode =$("#orgcode").val();
                $("#mycode").barcode(code, "code93",{barWidth:2, barHeight:30});  //SYDO480408
               //$("#mycode").barcode(code, "code128",{barWidth:2, barHeight:30});  // SYDO431808
});
        });
    </script>
</head>
<body>
1、条形码 codabar  <br><br>
<div id="bcTarget"></div><br>
2、条形码 ean13  <br><br>
<div id="bcTarget2"></div><br>
3、输入要生成条形码的数字(code93/code128):
<input type="text"id ="orgcode">&nbsp;&nbsp;<input type="button"value="生成条形码"id="genid"/><br><br>
<div id="mycode"></div>
</body>
</html>

前端生成二维码/条形码第3张同样可以用上一篇的扫一扫,扫出生成条形码时候的参数。

免责声明:文章转载自《前端生成二维码/条形码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇StringBuilder 以及 StringBuffer默认大小与扩容建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用C#实现的条形码和二维码编码解码器

本篇介绍可以在C#中使用的1D/2D编码解码器。条形码的应用已经非常普遍,几乎所有超市里面的商品上面都印有条形码;二维码也开始应用到很多场合,如火车票有二维码识别、网易的首页有二维码图标,用户只需要用手机扫描一下就可以看到手机版网易的网址,免去了输入长串字符的麻烦。 条形码的标准: 条形码的标准有ENA条形码、UPC条形码、二五条形码、交叉二五条形码、库德...

基于QRcode创建和识别二维码的研究

至于什么是二维码,大家都使用过,其实比较形象,对比之前的条形码,就很容易理解,就是基于水平方向排列的通过小竖条的宽度不同表示不同的信息,而二维码,表达信息的方式是基于二维的黑白相间(不一定就是黑白,多数看到的可能是黑白,其实颜色是可以随着自己的需要,灵活调整的)的小方块,按照一定的规则排列的一个矩形区域内,形成一个传递信息的编码方式。 二维码(本博客重点介...

使用jquery-qrcode生成二维码

使用jquery-qrcode生成二维码 目录导航 一、使用jquery-qrcode生成二维码 二、JS生成中文二维码 一、使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取), qrcode....

java实现二维码生成的几个方法

1: 使用SwetakeQRCode在Java项目中生成二维码http://swetake.com/qr/ 下载地址或着http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip这个是日本人写的,生成的是我们常见的方形的二维码可以用中文如:5677777ghjjjjj 2: 使用BarC...

前端动态生成二维码后合成海报,下载分享

转载:zgh0711:https://blog.csdn.net/zgh0711/article/details/88192993 如何生成二维码 现在前端环境下,要生成二维码,可用的工具库有很多,我这里用的是 qrcode,首先安装   npm install --save qrcode 安装完之后 import 导入就能使用了   import QR...

二维码(QR code)基本知识

1.二维码定义:   二维码(2-Dimensional Bar Code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。它是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、...