日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端实现自动打印 批量打印

發布時間:2023/12/15 HTML 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端实现自动打印 批量打印 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎關注微信公眾號:【 全棧攻略 】

眾所周知,前端打印的API只有window.print(),而我們要實現自動打印和批量打印,甚至連獲取本地電腦的打印機有哪些都無法獲取到。難道,前端對此真的無能為力嗎?答案是 否定 !

Lodop 由此誕生,有人說她是Web打印控件的“終結者”,因為接觸“她”后再不想別的“她”。 那我們就來揭開這神秘都面紗!

一,首先我們要改造Lodpo的源代碼文件為適合Vue/React/Angular等框架如下:

LodopFuncs.js

var CreatedOKLodop7766 = null, CLodopIsLocal;//====判斷是否需要 Web打印服務CLodop:=== //===(不支持插件的瀏覽器版本需要用它)=== export function needCLodop() {try {var ua = navigator.userAgent;if (ua.match(/Windows\sPhone/i))return true;if (ua.match(/iPhone|iPod|iPad/i))return true;if (ua.match(/Android/i))return true;if (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;} }//====頁面引用CLodop云打印必須的JS文件,用雙端口(8000和18000)避免其中某個被占用:==== if (needCLodop()) {var src1 = "http://localhost:8000/CLodopfuncs.js?priority=1";var src2 = "http://localhost:18000/CLodopfuncs.js?priority=0";var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement;var oscript = document.createElement("script");oscript.src = src1;head.insertBefore(oscript, head.firstChild);oscript = document.createElement("script");oscript.src = src2;head.insertBefore(oscript, head.firstChild);CLodopIsLocal = !!((src1 + src2).match(/\/\/localho|\/\/127.0.0./i)); }//====獲取LODOP對象的主過程:==== export function getLodop(oOBJECT, oEMBED) {var strHtmInstall = "<br><font color='#FF00FF'>打印控件未安裝!點擊這里<a href='install_lodop32.exe' target='_self'>執行安裝</a>,安裝后請刷新頁面或重新進入。</font>";var strHtmUpdate = "<br><font color='#FF00FF'>打印控件需要升級!點擊這里<a href='install_lodop32.exe' target='_self'>執行升級</a>,升級后請重新進入。</font>";var strHtm64_Install = "<br><font color='#FF00FF'>打印控件未安裝!點擊這里<a href='install_lodop64.exe' target='_self'>執行安裝</a>,安裝后請刷新頁面或重新進入。</font>";var strHtm64_Update = "<br><font color='#FF00FF'>打印控件需要升級!點擊這里<a href='install_lodop64.exe' target='_self'>執行升級</a>,升級后請重新進入。</font>";var strHtmFireFox = "<br><br><font color='#FF00FF'>(注意:如曾安裝過Lodop舊版附件npActiveXPLugin,請在【工具】->【附加組件】->【擴展】中先卸它)</font>";var strHtmChrome = "<br><br><font color='#FF00FF'>(如果此前正常,僅因瀏覽器升級或重安裝而出問題,需重新執行以上安裝)</font>";var strCLodopInstall_1 = "<br><font color='#FF00FF'>Web打印服務CLodop未安裝啟動,點擊這里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>下載執行安裝</a>";var strCLodopInstall_2 = "<br>(若此前已安裝過,可<a href='CLodop.protocol:setup' target='_self'>點這里直接再次啟動</a>)";var strCLodopInstall_3 = ",成功后請刷新本頁面。</font>";var strCLodopUpdate = "<br><font color='#FF00FF'>Web打印服務CLodop需升級!點擊這里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>執行升級</a>,升級后請刷新頁面。</font>";var LODOP;try {var ua = navigator.userAgent;var isIE = !!(ua.match(/MSIE/i)) || !!(ua.match(/Trident/i));if (needCLodop()) {try {LODOP = getCLodop();} catch (err) {}if (!LODOP && document.readyState !== "complete") {alert("網頁還沒下載完畢,請稍等一下再操作.");return;}if (!LODOP) {//document.body.innerHTML = strCLodopInstall_1 + (CLodopIsLocal ? strCLodopInstall_2 : "") + strCLodopInstall_3 + document.body.innerHTML; return;} else {if (CLODOP.CVERSION < "3.0.8.3") {document.body.innerHTML = strCLodopUpdate + document.body.innerHTML;}if (oEMBED && oEMBED.parentNode)oEMBED.parentNode.removeChild(oEMBED);if (oOBJECT && oOBJECT.parentNode)oOBJECT.parentNode.removeChild(oOBJECT);}} else {var is64IE = isIE && !!(ua.match(/x64/i));//=====如果頁面有Lodop就直接使用,沒有則新建:==========if (oOBJECT || oEMBED) {if (isIE)LODOP = oOBJECT;elseLODOP = oEMBED;} else if (!CreatedOKLodop7766) {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 (isIE)LODOP.setAttribute("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA");elseLODOP.setAttribute("type", "application/x-print-lodop");document.documentElement.appendChild(LODOP);CreatedOKLodop7766 = LODOP;} elseLODOP = CreatedOKLodop7766;//=====Lodop插件未安裝時提示下載地址:==========if ((!LODOP) || (!LODOP.VERSION)) {if (ua.indexOf('Chrome') >= 0)document.body.innerHTML = strHtmChrome + document.body.innerHTML;if (ua.indexOf('Firefox') >= 0)document.body.innerHTML = strHtmFireFox + document.body.innerHTML;document.body.innerHTML = (is64IE ? strHtm64_Install : strHtmInstall) + document.body.innerHTML;return LODOP;}}if (LODOP.VERSION < "6.2.2.6") {if (!needCLodop())document.body.innerHTML = (is64IE ? strHtm64_Update : strHtmUpdate) + document.body.innerHTML;}//===如下空白位置適合調用統一功能(如注冊語句、語言選擇等):==// 添加注冊碼,打印就不會出現 “本頁由lodop試用版輸出 ” LODOP.SET_LICENSES("","XXXXX","XXXX","");//=======================================================return LODOP;} catch (err) {alert("getLodop出錯:" + err);} }

二,獲取本地電腦連接都有哪些打印機

先上效果圖:

代碼如下:

// 先導入getLodop方法 import { getLodop } from "plugin/LodopFuncs.js";// 獲取打印機列表getPrintList() {let LODOP = getLodop();if (!LODOP)return// 獲取打印機個數let count = LODOP.GET_PRINTER_COUNT()let printValue = LODOP.GET_PRINTER_NAME(-1) //獲取默認打印機this.printList = Array(count).fill(null).map((...args) => {if (printValue === LODOP.GET_PRINTER_NAME(args[1])){this.printDefault = args[1]}return {value: args[1], // args[1]為數組索引label: LODOP.GET_PRINTER_NAME(args[1]) // 獲取打印機名稱}})},

三,實現自動打印和批量打印

自動打印沒法上效果圖了,自己試一下就可以了 ^?_?^

不過可以上,我們倉儲系統的場景圖:

代碼如下:

// 多選handleSelectionChange(val) {this.multipleSelection = val;},// 批量打印async batchPrint() {if(!this.multipleSelection.length){this.$utils.commonUtils.tip('請選擇','warning')return}for await(const key of this.multipleSelection) {this.getPrintData(key.printUrl)}},// 打印handleReview(index, row) {this.getPrintData(row.printUrl)},// 獲取面單信息數組數據async getPrintData(url) {if(url) {this.printUrlList = url.split(';')this.printInfo()}},// 打印面單 async printInfo() {for await (const item of this.printUrlList) {this.printEveryItem(item)}},// 打印每項printEveryItem(item) {let self = this;let LODOP = getLodop(); //調用getLodop獲取LODOP對象return new Promise(function (resolve) {setTimeout(() => {LODOP.PRINT_INIT("");let strStyleCSS = `<style type='text/css' rel='stylesheet'>.img1{display:block;margin:10px;width:360;height:360}</style>`let html = `<head>${strStyleCSS}</head><body><div class='print-card'><img src=${item} class='img1' /></div><body>`LODOP.ADD_PRINT_HTM(0,0,380,380,html);LODOP.SET_PRINT_PAGESIZE(1,1000,1000,""); LODOP.PRINT();}, 1000);});}

單個打印和批量打印實現了,自動打印就簡單了,滿足條件調用打印方法即可,如倉儲系統實際業務需求,當播種完成自動打印

至此,前端實現了自動打印 批量打印功能,更多功能可自行擴展,Lodop 等你探索!

轉載于:https://blog.csdn.net/weixin_45115705/article/details/102717637

總結

以上是生活随笔為你收集整理的前端实现自动打印 批量打印的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品一区二区三区在线视频 | 亚洲午夜免费视频 | 午夜在线| 91岛国| 成人福利在线看 | 成人精品动漫 | 91久久精品国产91久久性色tv | 日本一区二区三区四区在线观看 | 国产激情久久久 | 人妻少妇偷人精品久久久任期 | 99国产精品白浆在线观看免费 | 亚洲精品一区二三区不卡 | 国产传媒在线视频 | 女性裸体瑜伽无遮挡 | 国产精品久久久久久亚洲伦 | 特黄aaaaaaaaa真人毛片 | 婷婷天堂 | 午夜视频一区二区三区 | 欧美日韩精品一区二区三区 | jzzijzzij亚洲成熟少妇18 欧美www在线观看 | www黄色av | 日韩一区二区三区av | www.成人av| av在线一| 91丝袜| 免费黄色网址大全 | 杨幂毛片午夜性生毛片 | 国产白浆在线观看 | 米奇av| 95在线视频 | 亚洲av毛片一区二二区三三区 | 亚洲激情一区二区三区 | 中文字幕精品三区 | 性久久久久 | 国产av无码专区亚洲av毛网站 | 6—12呦国产精品 | 国产suv精品一区二区三区 | 91.xxx.高清在线 | 午夜精品福利视频 | 妻子的性幻想 | 亚洲男人天堂2019 | 久久精品天堂 | 深夜福利视频网站 | 日日夜夜干 | 亚洲综合在线一区二区 | 最近中文字幕在线mv视频在线 | 给我看免费高清在线观看 | 4438全国最大成人网 | 成人动漫在线观看免费 | 人操人操| 激情久久视频 | 蜜桃无码一区二区三区 | 免费欧美一区 | 欧美brazzers| 国产一卡二卡在线 | 视频一区二区三区精品 | 中文字幕网站在线观看 | 日韩女优中文字幕 | 手机看片1024国产 | 99999视频 | 天天插天天透 | 国产视频一区二区在线播放 | 亲女禁h啪啪宫交 | 天天操夜夜操狠狠操 | 成人国产精品免费观看 | 麻豆精品视频在线观看 | 玉女心经 在线 | 亚洲专区中文字幕 | 国产乱大交 | 视频一区二区中文字幕 | 好男人网站 | 91情侣视频| 国产欧美日韩视频在线观看 | 2017天天干 | 最新久久久 | 日韩色中色 | 少妇系列av | 欧美bbw视频 | a毛片| 色站在线| 双性娇喘浑圆奶水h男男漫画 | 免费看黄色的网址 | 国产精品久久久久久久久夜色 | 播五月婷婷 | 日韩天天干| 久久久久亚洲精品中文字幕 | 日韩手机在线观看 | 国产精品自拍99 | 成年免费在线观看 | 久草福利资源 | 色欲狠狠躁天天躁无码中文字幕 | 澳门免费av | 欧美日韩三级在线观看 | 欧美中文字幕一区二区三区 | 熟女俱乐部一区二区视频在线 | 日本免费黄网站 | 国产乱子伦视频一区二区三区 | 国内一区二区视频 | 国产网红主播精品av |