(资料图)
vue实现打印小票
lodop 打印控件
安装 lodop 打印控件(学习视频分享:vue视频教程)
lodop地址: http://www.c-lodop.com/download.html
把 lodopfuncs.js
引入项目
//==本js是加载lodop插件或web打印服务clodop/lodop7的综合示例,可直接使用,建议理解后融入自己程序==//用双端口加载主js文件lodop.js(或clodopfuncs.js兼容老版本)以防其中某端口被占:var mainjs = "clodopfuncs.js", url_ws1 = "ws://localhost:8000/" mainjs, //ws用8000/18000 url_ws2 = "ws://localhost:18000/" mainjs, url_http1 = "http://localhost:8000/" mainjs, //http用8000/18000 url_http2 = "http://localhost:18000/" mainjs, url_http3 = "https://localhost.lodop.net:8443/" mainjs; //https用8000/8443var createdoklodopobject, clodopislocal, loadjsstate;//==判断是否需要clodop(那些不支持插件的浏览器):==export function needclodop() { try { var ua = navigator.useragent; if (ua.match(/windows\sphone/i) || ua.match(/iphone|ipod|ipad/i) || ua.match(/android/i) || ua.match(/edge\d?\d /i)) return true; var vertrident = ua.match(/trident\d?\d /i); var verie = ua.match(/msie\d?\d /i); var veropr = ua.match(/opr\d?\d /i); var verff = ua.match(/firefox\d?\d /i); var x64 = ua.match(/x64/i); if ((!vertrident) && (!verie) && (x64)) return true; else if (verff) { verff = verff[0].match(/\d /); if ((verff[0] >= 41) || (x64)) return true;} else if (veropr) { veropr = veropr[0].match(/\d /); if (veropr[0] >= 32) return true;} else if ((!vertrident) && (!verie)) { var verchrome = ua.match(/chrome\d?\d /i); if (verchrome) { verchrome = verchrome[0].match(/\d /); if (verchrome[0] >= 41) return true; } } return false;} catch (err) { return true; }}//==检查加载成功与否,如没成功则用http(s)再试==//==低版本clodop6.561/lodop7.043及前)用本方法==export function checkortryhttp() { if (window.getclodop) { loadjsstate = "complete"; return true; } if (loadjsstate == "loadingb" || loadjsstate == "complete") return; loadjsstate = "loadingb"; var head = document.head || document.getelementsbytagname("head")[0] || document.documentelement; var js1 = document.createelement("script"), js2 = document.createelement("script"), js3 = document.createelement("script"); js1.src = url_http1; js2.src = url_http2; js3.src = url_http3; js1.onload = js2.onload = js3.onload = js2.onerror = js3.onerror = function () { loadjsstate = "complete"; } js1.onerror = function (e) { if (window.location.protocol !== "https:") head.insertbefore(js2, head.firstchild); else head.insertbefore(js3, head.firstchild); } head.insertbefore(js1, head.firstchild);}//==加载lodop对象的主过程:==(function loadclodop() { if (!needclodop()) return; clodopislocal = !!((url_ws1 url_ws2).match(/\/\/localho|\/\/127.0.0./i)); loadjsstate = "loadinga"; if (!window.websocket && window.mozwebsocket) window.websocket = window.mozwebsocket; //ws方式速度快(小于200ms)且可避免cors错误,但要求lodop版本足够新: try { var wsk1 = new websocket(url_ws1); wsk1.onopen = function (e) { settimeout("checkortryhttp();", 200); } wsk1.onmessage = function (e) { if (!window.getclodop) eval(e.data); } wsk1.onerror = function (e) { var wsk2 = new websocket(url_ws2); wsk2.onopen = function (e) { settimeout("checkortryhttp();", 200); } wsk2.onmessage = function (e) { if (!window.getclodop) eval(e.data); } wsk2.onerror = function (e) { checkortryhttp(); } }} catch (e) { checkortryhttp(); }})();//==获取lodop对象主过程,判断是否安装、需否升级:==export function getlodop(oobject, oembed) { var strfonttag = "
打印控件"; var strlodopinstall = strfonttag "未安装!点击这里"; var strlodopupdate = strfonttag "需要升级!点击这里"; var strlodop64install = strfonttag "未安装!点击这里"; var strlodop64update = strfonttag "需要升级!点击这里"; var strclodopinstalla = "
web打印服务clodop未安装启动,点击这里"; var strclodopinstallb = "
(若此前已安装过,可)"; var strclodopupdate = "
web打印服务clodop需升级!点击这里"; var strlodop7fonttag = "
web打印服务lodop7"; var strlodop7hrefx86 = "点击这里(下载后解压,点击lodop文件开始执行)"; var strlodop7hrefarm = "点击这里(下载后解压,点击lodop文件开始执行)"; var strlodop7install_x86 = strlodop7fonttag "未安装启动," strlodop7hrefx86; var strlodop7install_arm = strlodop7fonttag "未安装启动," strlodop7hrefarm; var strlodop7update_x86 = strlodop7fonttag "需升级," strlodop7hrefx86; var strlodop7update_arm = strlodop7fonttag "需升级," strlodop7hrefarm; var strinstallok = ",成功后请刷新本页面或重启浏览器。"; var lodop; try { var iswinie = (/msie/i.test(navigator.useragent)) || (/trident/i.test(navigator.useragent)); var iswinie64 = iswinie && (/x64/i.test(navigator.useragent)); var islinuxx86 = (/linux/i.test(navigator.platform)) && (/x86/i.test(navigator.platform)); var islinuxarm = (/linux/i.test(navigator.platform)) && (/aarch/i.test(navigator.platform)); if (needclodop() || islinuxx86 || islinuxarm) { try { lodop = window.getclodop();} catch (err) { } if (!lodop && loadjsstate !== "complete") { if (!loadjsstate) alert("未曾加载lodop主js文件,请先调用loadclodop过程."); else alert("网页还没下载完毕,请稍等一下再操作."); return; } var stralertmessage; if (!lodop) { if (islinuxx86) stralertmessage = strlodop7install_x86; else if (islinuxarm) stralertmessage = strlodop7install_arm; else stralertmessage = strclodopinstalla (clodopislocal ? strclodopinstallb : ""); document.body.innerhtml = stralertmessage strinstallok document.body.innerhtml; return;} else { if (islinuxx86 && lodop.cversion < "7.0.4.3") stralertmessage = strlodop7update_x86; else if (islinuxarm && lodop.cversion < "7.0.4.3") stralertmessage = strlodop7update_arm; else if (clodop.cversion < "6.5.7.0") stralertmessage = strclodopupdate; if (stralertmessage) document.body.innerhtml = stralertmessage strinstallok document.body.innerhtml; }} else { //==如果页面有lodop插件就直接使用,否则新建:== if (oobject || oembed) { if (iswinie) lodop = oobject; else lodop = oembed;} else if (!createdoklodopobject) { lodop = document.createelement("object"); lodop.setattribute("width", 0); lodop.setattribute("height", 0); lodop.setattribute("style", "position:absolute;left:0px;top:-100px;width:0px;height:0px;"); if (iswinie) lodop.setattribute("classid", "clsid:2105c259-1e0c-4534-8141-a753534cb4ca"); else lodop.setattribute("type", "application/x-print-lodop"); document.documentelement.appendchild(lodop); createdoklodopobject = lodop;} else lodop = createdoklodopobject; //==lodop插件未安装时提示下载地址:== if ((!lodop) || (!lodop.version)) { document.body.innerhtml = (iswinie64 ? strlodop64install : strlodopinstall) strinstallok document.body.innerhtml; return lodop; } if (lodop.version < "6.2.2.6") { document.body.innerhtml = (iswinie64 ? strlodop64update : strlodopupdate) strinstallok document.body.innerhtml; } } //===如下空白位置适合调用统一功能(如注册语句、语言选择等):======================= //=============================================================================== return lodop;} catch (err) { alert("getlodop出错:" err); }}
去掉测试版本
mypreview1() { // this.createimage(); // this.lodop.print(); let lodop = getlodop(); console.log(" lodop", lodop) var strhtml = document.getelementbyid("box").innerhtml; lodop.print_init("") lodop.set_licenses("", "ee0887d00fcc7d29375a695f728489a6", "c94cee276db2187ae6b65d56b3fc2848", ""); //去掉测试版本 // lodop.set_print_pagesize(3, "80mm", "10mm", "createcustompage"); //80打印机不需要加这行 lodop.set_print_style("fontsize", 15); // 设置打印字体 lodop.set_print_style("bold", 1); // 设置加粗 lodop.set_print_mode("print_page_percent", "height:90%"); lodop.set_print_mode("print_page_percent", "full-width"); lodop.add_print_htm(10, 10, "90%", "70%", strhtml); lodop.print();// // this.lodop.preview() },
以上就是实例讲解vue如何实现打印小票的详细内容,更多请关注php中文网其它相关文章!
关键词: