二维码打印JS

前段时间,有个项目,刚好需要用到二维码生成及打印的功能,所以上网找了相关的资料,网上有很多二维码生成工具及代码,在这里向大家推荐一款jquery.qrcode.js ,jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码。

只需要2行代码即可生成:

<div id="output1"></div>

jQuery('#output0').qrcode({width:65,height:65,text:"23123123"});


它有很多属性可以设置:

  1. render   : "canvas",//设置渲染方式  
  2. width       : 256,     //设置宽度  
  3. height      : 256,     //设置高度  
  4. typeNumber  : -1,      //计算模式  
  5. correctLevel    : QRErrorCorrectLevel.H,//纠错等级  
  6. background      : "#ffffff",//背景颜色  
  7. foreground      : "#000000" //前景颜色  

它有一个缺陷,就是对中文支持不好,很多人都遇到这个问题,网上有一个解决方法,还可以:

在二维码编码前把字符串转换成UTF-8,具体代码如下:

Js代码   收藏代码
  1. function utf16to8(str) {  
  2.     var out, i, len, c;  
  3.     out = "";  
  4.     len = str.length;  
  5.     for(i = 0; i < len; i++) {  
  6.     c = str.charCodeAt(i);  
  7.     if ((c >= 0x0001) && (c <= 0x007F)) {  
  8.         out += str.charAt(i);  
  9.     } else if (c > 0x07FF) {  
  10.         out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));  
  11.         out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));  
  12.         out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  
  13.     } else {  
  14.         out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));  
  15.         out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));  
  16.     }  
  17.     }  
  18.     return out;  
  19. }  

这跟js的机制有关系,jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的,

而这个方法默认会获取它的 Unicode 编码,一般的解码器都是采用UTF-8, ISO-8859-1等方式,

英文是没有问题,如果是中文,一般情况下Unicode是UTF-16实现,长度2位,而UTF-8编码是3位,这样二维码的编解码就不匹配了。


详细介绍可以看jquery.qrcode官方网址为http://jeromeetienne.github.com/jquery-qrcode/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用 qrcode.js 打印二维码,首先需要引入 qrcode.js 库。可以通过以下方式在 HTML 页面中引入: ```html <script src="qrcode.min.js"></script> ``` 接下来,需要在 JavaScript 中创建一个 QRCode 实例,并将其绑定到要显示二维码的 HTML 元素上。例如,如果要在一个 id 为 "qrcode" 的 div 元素中显示二维码,可以使用以下代码: ```javascript var qrcode = new QRCode(document.getElementById("qrcode"), { text: "https://www.example.com", width: 200, height: 200, colorDark : "#000000", colorLight : "#ffffff", correctLevel : QRCode.CorrectLevel.H }); ``` 在上面的代码中,我们传递了一些参数给 QRCode 构造函数,包括: - `document.getElementById("qrcode")`:要绑定到的 HTML 元素。 - `text: "https://www.example.com"`:要生成二维码的内容。 - `width: 200` 和 `height: 200`:二维码的宽度和高度。 - `colorDark : "#000000"` 和 `colorLight : "#ffffff"`:二维码的颜色(黑色和白色)。 - `correctLevel : QRCode.CorrectLevel.H`:纠错等级。 最后,可以使用以下代码将二维码打印出来: ```javascript var printContents = document.getElementById("qrcode").innerHTML; var originalContents = document.body.innerHTML; document.body.innerHTML = printContents; window.print(); document.body.innerHTML = originalContents; ``` 上面的代码将要打印的内容存储在变量 `printContents` 中,然后将页面的内容替换为要打印的内容,调用 `window.print()` 打印页面,最后将页面内容恢复为原始内容。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值