模板打印也叫」套打「,是業務系統和後臺管理系統中的經常使用功能,B/S系統中實現」套打「比較繁瑣,因此不少的B/S系統中的打印功能一直使用的是瀏覽器打印,不多實現模板打印。本篇將介紹在Vue Element Admin框架中實現模板打印功能。另外,本篇教程一樣適用於Angular,Angular打印實現方式能夠參考這篇文章:http://www.javashuo.com/article/p-kzbxabsc-ch.html。html
B/S系統中的打印方式分爲兩種,分別是瀏覽器打印和插件打印,二者有以下區別:vue
在衆多打印插件中筆者選擇了Lodop,在幾番對比後發現Lodop插件有如下優點:web
Lodop雖然好用,可是最大的缺陷就是沒法跨平臺。windows
開始前須要安裝Lodop插件,下載地址:http://www.lodop.net/demolist/CLodop_Setup_for_Win32NT.zip瀏覽器
解壓文件並安裝,肯定服務已啓動,之後會自動啓動。框架
相關views、router添加過程省略,本篇主要講解Lodop打印操做。模板管理中加入「模板設計」、「模板打印」按鈕測試
<el-button v-loading="loading" @click="designTemplate" type="warning">模板設計</el-button> <el-button v-loading="loading" @click="handlePrint" type="warning">模板打印</el-button>
var head = document.head || document.getElementsByTagName("head")[0] || document.documentElement; var oscript = document.createElement("script"); oscript.src = "http://localhost:8000/CLodopfuncs.js?priority=1"; head.insertBefore(oscript, head.firstChild);
designTemplate方法代碼以下:this
designTemplate() { let LODOP = getCLodop(); let _self = this; const tid = LODOP.PRINT_DESIGN(); LODOP.On_Return = function(taskID, value) { _self.templateCode = value; }; },
Lodop設計功能比較豐富,能夠插入文本、圖形、條碼、圖標、背景、大小等等。spa
Lodop預裝載.net
對於一些經常使用模板無需設計可使用預裝載功能,預裝載會加載預先定義的模板內容,如上圖中的模板內容:
templateCode: `LODOP.PRINT_INITA(10,10,762,533,"測試套打"); LODOP.ADD_PRINT_TEXT(38,78,408,30,"{{標題}}"); LODOP.SET_PRINT_STYLEA(0,"FontSize",15); LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.ADD_PRINT_TEXT(259,579,100,23,"{{費用}}"); LODOP.ADD_PRINT_TEXT(260,520,58,24,"合計:");`
在設計好模板後要根據模板內容填充數據進行打印,先模擬一個打印數據:
context: { 標題: "自定義標題", 費用: "100.00 元" }
handlePrint() { let LODOP = getCLodop(); LODOP.PREVIEW(); }
打印: