a6948076
        思路:将字符串使用jquery.qrcode.min.js转换为二维码。--  该出需要注意,如果要打印那二维码需要是<img>。否则只在页面显示,通过杰表打印的时候内容是空白的。
在转换的时候遇到中文无法转换,和转换后识别为乱码的问题。最终的解决方法是引入js如下:
       <script type="text/javascript"
    src="${ctxStatic }/jquery/jquery-1.9.1.min.js"></script>
 <script type="text/javascript"
    src="${ctxStatic }/jquery/jquery.qrcode.min.js"></script>
//   Object 引入杰表控件
<OBJECT ID="jatoolsPrinter"
            CLASSID="CLSID:B43D3361-D075-4BE2-87FE-057188254255"
            codebase="jatoolsPrinter.cab#version=8,6,0,0"> </OBJECT>


//  构建一个<div> 用于显示二维码测试,正式环境需要隐藏该div
<div id="pageLoop"</>

<script type="text/javascript">
        /* 该功能只能在IE浏览器中使用  */
            var arrayList = new Array("PS4手柄-016", "Wfgcomputer-645",
                    "四孔风机-014", "酷柏-038");  // 该出是测试多个二维码显示
            var oPageLoop = document.getElementById("pageLoop")
            for (var i = 0; i < arrayList.length; i++) {
                $("#pageLoop")
                        .append(
                                "<div id=\'page"
                                        + (i + 1)
                                        + "\' style=\'width:150px;\'><div style=\'font-size:10px;float:right;padding-left:2px;padding-top:10px;padding-right:5px;padding-bottom:5px;\'>"
                                        + arrayList[i] + "</div></div>");

            }


//用于转换为二维码 并将canvas转换为<img>  解决在打印预览界面显示内容为空的情况

             for (var i = 0; i < arrayList.length; i++) {
                jQuery(\'#page\'+(i+1)).qrcode({width: 50,height:50,text:toUtf8(arrayList[i])});  
             var canvas = $(\'#page\'+(i+1)+\' canvas\');
            var img = canvas[0].toDataURL("image/png");
            $(\'#page\'+(i+1)).append("<img src=\'" + img + "\'>");
            canvas.remove();
            }  



//解决中文乱码问题

function toUtf8(str) {
                var out, i, len, c;
                out = "";
                len = str.length;
                for (i = 0; i < len; i++) {
                    c = str.charCodeAt(i);
                    if ((c >= 0x0001) && (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));
                    }
                }
                return out;
            }

//  杰表打印
function print() {
                var myDoc = {
                    settings : {
                        topMargin : 1,
                        leftMargin : 50,
                        bottomMargin : 1,
                        rightMargin : 50, // 单位是1/10 mm
                        orientation : 1
                    // 2横向  1纵向

                    },
                    documents : document, // 打印页面(div)们在本文档中  
                    copyrights : \'杰创软件拥有版权  www.jatools.com\' // 版权声明必须  
                };
                //jatoolsPrinter.printPreview(myDoc, false);print
                jatoolsPrinter.printPreview(myDoc);
            }

分类:

技术点:

相关文章:

  • 2022-01-18
  • 2021-12-03
  • 2021-07-19
  • 2021-09-14
  • 2021-05-20
  • 2022-12-23
  • 2021-06-11
  • 2022-12-23
猜你喜欢
  • 2021-10-07
  • 2021-12-03
  • 2021-09-26
  • 2021-12-07
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
相关资源
相似解决方案