傑表列印跟亂碼修改
阿新 • • 發佈:2018-11-23
思路:將字串使用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);
}
在轉換的時候遇到中文無法轉換,和轉換後識別為亂碼的問題。最終的解決方法是引入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);
}