溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue怎么實現(xiàn)打印小票

發(fā)布時間:2022-11-14 09:49:47 來源:億速云 閱讀:135 作者:iii 欄目:編程語言

這篇文章主要講解了“vue怎么實現(xiàn)打印小票”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“vue怎么實現(xiàn)打印小票”吧!

vue實現(xiàn)打印小票

lodop 打印控件

安裝 lodop 打印控件

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/8443

var  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  =  "<br><font color='#FF00FF'>打印控件";

 var  strLodopInstall  =  strFontTag  +  "未安裝!點擊這里<a href='install_lodop32.exe' target='_self'>執(zhí)行安裝</a>";

 var  strLodopUpdate  =  strFontTag  +  "需要升級!點擊這里<a href='install_lodop32.exe' target='_self'>執(zhí)行升級</a>";

 var  strLodop64Install  =  strFontTag  +  "未安裝!點擊這里<a href='install_lodop64.exe' target='_self'>執(zhí)行安裝</a>";

 var  strLodop64Update  =  strFontTag  +  "需要升級!點擊這里<a href='install_lodop64.exe' target='_self'>執(zhí)行升級</a>";

 var  strCLodopInstallA  =  "<br><font color='#FF00FF'>Web打印服務CLodop未安裝啟動,點擊這里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>下載執(zhí)行安裝</a>";

 var  strCLodopInstallB  =  "<br>(若此前已安裝過,可<a href='CLodop.protocol:setup' target='_self'>點這里直接再次啟動</a>)";

 var  strCLodopUpdate  =  "<br><font color='#FF00FF'>Web打印服務CLodop需升級!點擊這里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>執(zhí)行升級</a>";

 var  strLodop7FontTag  =  "<br><font color='#FF00FF'>Web打印服務Lodop7";

 var  strLodop7HrefX86  =  "點擊這里<a href='Lodop7_Linux_X86_64.tar.gz' target='_self'>下載安裝</a>(下載后解壓,點擊lodop文件開始執(zhí)行)";

 var  strLodop7HrefARM  =  "點擊這里<a href='Lodop7_Linux_ARM64.tar.gz'  target='_self'>下載安裝</a>(下載后解壓,點擊lodop文件開始執(zhí)行)";

 var  strLodop7Install_X86  =  strLodop7FontTag  +  "未安裝啟動,"  +  strLodop7HrefX86;

 var  strLodop7Install_ARM  =  strLodop7FontTag  +  "未安裝啟動,"  +  strLodop7HrefARM;

 var  strLodop7Update_X86  =  strLodop7FontTag  +  "需升級,"  +  strLodop7HrefX86;

 var  strLodop7Update_ARM  =  strLodop7FontTag  +  "需升級,"  +  strLodop7HrefARM;

 var  strInstallOK  =  ",成功后請刷新本頁面或重啟瀏覽器。</font>";

 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;

            }

        }

 //===如下空白位置適合調用統(tǒng)一功能(如注冊語句、語言選擇等):=======================

 //===============================================================================

 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怎么實現(xiàn)打印小票”的內容了,經過本文的學習后,相信大家對vue怎么實現(xiàn)打印小票這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

vue
AI