vue打印小票怎么实现

其他教程   发布日期:2023年06月18日   浏览次数:588

这篇文章主要介绍“vue打印小票怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue打印小票怎么实现”文章能帮助大家解决问题。

lodop 打印控件

安装 lodop 打印控件

  1. lodop地址: http://www.c-lodop.com/download.html

  1. LodopFuncs.js
引入项目

  1. //==本JS是加载Lodop插件或Web打印服务CLodop/Lodop7的综合示例,可直接使用,建议理解后融入自己程序==
  2. //用双端口加载主JS文件Lodop.js(或CLodopfuncs.js兼容老版本)以防其中某端口被占:
  3. var MainJS = "CLodopfuncs.js",
  4. URL_WS1 = "ws://localhost:8000/" + MainJS, //ws用8000/18000
  5. URL_WS2 = "ws://localhost:18000/" + MainJS,
  6. URL_HTTP1 = "http://localhost:8000/" + MainJS, //http用8000/18000
  7. URL_HTTP2 = "http://localhost:18000/" + MainJS,
  8. URL_HTTP3 = "https://localhost.lodop.net:8443/" + MainJS; //https用8000/8443
  9. var CreatedOKLodopObject, CLodopIsLocal, LoadJsState;
  10. //==判断是否需要CLodop(那些不支持插件的浏览器):==
  11. export function needCLodop() {
  12. try {
  13. var ua = navigator.userAgent;
  14. if (ua.match(/WindowssPhone/i) ||
  15. ua.match(/iPhone|iPod|iPad/i) ||
  16. ua.match(/Android/i) ||
  17. ua.match(/EdgeD?d+/i))
  18. return true;
  19. var verTrident = ua.match(/TridentD?d+/i);
  20. var verIE = ua.match(/MSIED?d+/i);
  21. var verOPR = ua.match(/OPRD?d+/i);
  22. var verFF = ua.match(/FirefoxD?d+/i);
  23. var x64 = ua.match(/x64/i);
  24. if ((!verTrident) && (!verIE) && (x64)) return true;
  25. else if (verFF) {
  26. verFF = verFF[0].match(/d+/);
  27. if ((verFF[0] >= 41) || (x64)) return true;
  28. } else if (verOPR) {
  29. verOPR = verOPR[0].match(/d+/);
  30. if (verOPR[0] >= 32) return true;
  31. } else if ((!verTrident) && (!verIE)) {
  32. var verChrome = ua.match(/ChromeD?d+/i);
  33. if (verChrome) {
  34. verChrome = verChrome[0].match(/d+/);
  35. if (verChrome[0] >= 41) return true;
  36. }
  37. }
  38. return false;
  39. } catch (err) {
  40. return true;
  41. }
  42. }
  43. //==检查加载成功与否,如没成功则用http(s)再试==
  44. //==低版本CLODOP6.561/Lodop7.043及前)用本方法==
  45. export function checkOrTryHttp() {
  46. if (window.getCLodop) {
  47. LoadJsState = "complete";
  48. return true;
  49. }
  50. if (LoadJsState == "loadingB" || LoadJsState == "complete") return;
  51. LoadJsState = "loadingB";
  52. var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement;
  53. var JS1 = document.createElement("script")
  54. , JS2 = document.createElement("script")
  55. , JS3 = document.createElement("script");
  56. JS1.src = URL_HTTP1;
  57. JS2.src = URL_HTTP2;
  58. JS3.src = URL_HTTP3;
  59. JS1.onload = JS2.onload = JS3.onload = JS2.onerror = JS3.onerror = function () { LoadJsState = "complete"; }
  60. JS1.onerror = function (e) {
  61. if (window.location.protocol !== 'https:')
  62. head.insertBefore(JS2, head.firstChild); else
  63. head.insertBefore(JS3, head.firstChild);
  64. }
  65. head.insertBefore(JS1, head.firstChild);
  66. }
  67. //==加载Lodop对象的主过程:==
  68. (function loadCLodop() {
  69. if (!needCLodop()) return;
  70. CLodopIsLocal = !!((URL_WS1 + URL_WS2).match(///localho|//127.0.0./i));
  71. LoadJsState = "loadingA";
  72. if (!window.WebSocket && window.MozWebSocket) window.WebSocket = window.MozWebSocket;
  73. //ws方式速度快(小于200ms)且可避免CORS错误,但要求Lodop版本足够新:
  74. try {
  75. var WSK1 = new WebSocket(URL_WS1);
  76. WSK1.onopen = function (e) { setTimeout("checkOrTryHttp();", 200); }
  77. WSK1.onmessage = function (e) { if (!window.getCLodop) eval(e.data); }
  78. WSK1.onerror = function (e) {
  79. var WSK2 = new WebSocket(URL_WS2);
  80. WSK2.onopen = function (e) { setTimeout("checkOrTryHttp();", 200); }
  81. WSK2.onmessage = function (e) { if (!window.getCLodop) eval(e.data); }
  82. WSK2.onerror = function (e) { checkOrTryHttp(); }
  83. }
  84. } catch (e) {
  85. checkOrTryHttp();
  86. }
  87. })();
  88. //==获取LODOP对象主过程,判断是否安装、需否升级:==
  89. export function getLodop(oOBJECT, oEMBED) {
  90. var strFontTag = "<br><font color='#FF00FF'>打印控件";
  91. var strLodopInstall = strFontTag + "未安装!点击这里<a href="https://www.19jp.com">

去掉测试版本

  1. myPreview1() {
  2. // this.CreateImage();
  3. // this.LODOP.PRINT();
  4. let LODOP = getLodop();
  5. console.log(' LODOP', LODOP)
  6. var strHTML = document.getElementById("box").innerHTML;
  7. LODOP.PRINT_INIT("")
  8. LODOP.SET_LICENSES("", "EE0887D00FCC7D29375A695F728489A6", "C94CEE276DB2187AE6B65D56B3FC2848", ""); //去掉测试版本
  9. // LODOP.SET_PRINT_PAGESIZE(3, "80mm", "10mm", "CreateCustomPage"); //80打印机不需要加这行
  10. LODOP.SET_PRINT_STYLE("FontSize", 15); // 设置打印字体
  11. LODOP.SET_PRINT_STYLE("Bold", 1); // 设置加粗
  12. LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT", "Height:90%");
  13. LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT", "Full-Width");
  14. LODOP.ADD_PRINT_HTM(10, 10, "90%", "70%", strHTML);
  15. LODOP.PRINT();//
  16. // this.LODOP.PREVIEW()
  17. }

以上就是vue打印小票怎么实现的详细内容,更多关于vue打印小票怎么实现的资料请关注九品源码其它相关文章!