js生成二维码,支持打印显示

情到浓时终转凉″ 提交于 2020-01-15 08:14:05

Jquery中的二维码生成插件jquery.qrcode.js,

导入2个Jq文件:qrcode.js (二维码生成算法)    jquery.qrcode.js(使用配置)

 

下载链接:

链接:https://pan.baidu.com/s/1fDpoNPhDtAocho-uTl9xQg
提取码:b9go

 

基本使用方法:

$("#id").qrcode("http://......");  //在指定元素中生成二维码

注意:原本qrcode生成的是canvas元素,而canvas是无法打印出来的,会显示为空白,应将canvas转换为image返回

 

在jquery.qrcode.js中creatCanvas方法中修改:

var createCanvas    = function(){
            // create the qrcode itself
            var qrcode    = new QRCode(options.typeNumber, options.correctLevel);
            qrcode.addData(options.text);
            qrcode.make();

            // create canvas element
            var canvas    = document.createElement('canvas');
            canvas.width    = options.width;
            canvas.height    = options.height;
            var ctx        = canvas.getContext('2d');

            // compute tileW/tileH based on options.width/options.height
            var tileW    = options.width  / qrcode.getModuleCount();
            var tileH    = options.height / qrcode.getModuleCount();

            // draw in the canvas
            for( var row = 0; row < qrcode.getModuleCount(); row++ ){
                for( var col = 0; col < qrcode.getModuleCount(); col++ ){
                    ctx.fillStyle = qrcode.isDark(row, col) ? options.foreground : options.background;
                    var w = (Math.ceil((col+1)*tileW) - Math.floor(col*tileW));
                    var h = (Math.ceil((row+1)*tileW) - Math.floor(row*tileW));
                    ctx.fillRect(Math.round(col*tileW),Math.round(row*tileH), w, h);  
                }    
            }
            var image=new Image();
            image.src=canvas.toDataURL("image/png");
            image.id="qrcode";        return image;
            // return canvas
           
        }

 

 

转换方法:

function(canvas){        var image=new Image();
    image.src=canvas.toDataURL("image/png");
    image.id="qrcode";   return image;}

 

  

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!