实例讲解vue如何实现打印小票-ag真人官方网

实例讲解vue如何实现打印小票-ag真人官方网

来源:php中文网 | 2022-11-13 16:50:36 |


(资料图)

vue也能实现打印小票?那具体怎么实现呢?下面就带大家详细了解一下怎么通过安装 lodop 打印控件,实现打印小票,本文附有详细实例代码哦,希望对需要的朋友大家有所帮助,欢迎学习!

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中文网其它相关文章!

关键词:

ag真人官方网 ag真人官方网的版权所有.

联系网站:920 891 263@qq.com
网站地图