摘要:一現狀由于之前采用打印控件商業版付費可以使用免費版但是會有水印去打印小票,是一行一行的打印,但是不滿足給到復雜布局的小票樣式,所以得重新考慮如何來實現。打印控件介紹是支持瀏覽器端的打印控件,功能挺強大的。
一. 現狀
由于之前采用Lodop打印控件(商業版付費,可以使用免費版 但是會有水印)去打印小票,是一行一行的打印,但是不滿足UI給到復雜布局的小票樣式,所以得重新考慮如何來實現。
二. 介紹 art-template介紹art-template 是一個簡約、超快的模板引擎。
它采用作用域預聲明的技術來優化模板渲染速度,從而獲得接近 JavaScript 極限的運行性能,并且同時支持 NodeJS 和瀏覽器。在線速度測試。
中文文檔:art-template中文文檔
跟著文檔首先熟悉一下,然后看一下語法,跟著語法去實踐一下,很快就可以上手完成功能。
Lodop打印控件介紹Lodop是支持瀏覽器端的web打印控件, 功能挺強大的。
官網地址:http://www.lodop.net/
目前客戶端有很多是基于瀏覽器內核套的殼,那么在需要特殊打印的場景下,可以試下這個控件。
三. 方案選擇四. 方案落地方案一:用html+css進行網頁布局,html2canvas.js 來實現將網頁轉換成圖片,然后直接用Lodop打印圖片, 但是經過測試,打印出來的圖片模糊不清,而且html2canvas.js的兼容性IE>8,所以不符合
方案二:將這部分功能讓后端去完成模板+數據渲染并生成圖片去打印,但是發現跟方案一有相似的地方,解決不了圖片打印模糊不清,但是可以解決兼容性問題,依然不符合
方案三:采用html+css進行網頁布局,用art-template進行模板渲染后生成html字符串,然后采用Lodop打印控件來直接打印網頁。經過實際測試,打印出來的字跡清晰,而且art-template的兼容性在IE5下的功能也是正常的。所以最終就采用該方案
art-template模板編寫
上面的可以按照自己的樣式效果,先寫好靜態頁面,然后在根據art-template的語法動態設置
渲染數據:
// 增加過濾器 template.defaults.imports.toFixed = function(num) { return Number(num).toFixed(2); } var printhtml = template("print58-tpl", detail); $("#printerView").html(printhtml); var height = $("#printerView").outerHeight(); // 為了動態獲取頁面渲染過后的高度,傳遞到打印控件,指定打印多少。 // 創建打印頁 // 初始化小票打印身份信息 initLodopLicences(); // 創建小票打印頭信息 //createPayTitle("匯總打印憑證", "匯總信息"); try{ LODOP.PRINT_INIT("打印小票"); LODOP.SET_PRINT_PAGESIZE(3,"58mm",20,""); LODOP.ADD_PRINT_HTM("9mm","0mm","RightMargin:0mm",height+"px", printhtml); }catch(err){ } createPayFooter(); // 開始打印 startPayPrint(pcPrinterName);五. 總結
經過為期1天左右的時間,從方案的篩選到最終完成功能,學習到對于需要打印小票的場景,又多了一點點體會。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/104881.html
摘要:失敗原因有前一個打印事務沒有完成操作系統沒有添加打印機驅動等。每個打印事務至少初始化一次,打印程序首先調用初始化函數設定打印紙張為固定紙張或自適應內容高,并設定相關大小值或紙張名及打印方向 web打印解決方案 1.生成打印模版(網頁),使用window.print()預覽打印模版,在瀏覽器中打印2.導出網頁為excel文件,詳見網頁導出為excel 3.使用lodop打印控件 第一種方...
摘要:前端時間公司有一個項目要批量打印,主要是打印準考證,考試成績,以及考試證書。一句話,一旦出現了問題,修復起來會非常困難,關鍵代碼就一行。問題往往出現在,往往在測試環境沒有問題,在正式環境上就不行。 前端時間公司有一個項目要批量打印,主要是打印準考證,考試成績,以及考試證書。參考方案,前端打印,后端打印 后端打印 后端打印主要是用wkhtmltopdf這個,這個框架需要在后端安裝一大堆東...
摘要:前端時間公司有一個項目要批量打印,主要是打印準考證,考試成績,以及考試證書。一句話,一旦出現了問題,修復起來會非常困難,關鍵代碼就一行。問題往往出現在,往往在測試環境沒有問題,在正式環境上就不行。 前端時間公司有一個項目要批量打印,主要是打印準考證,考試成績,以及考試證書。參考方案,前端打印,后端打印 后端打印 后端打印主要是用wkhtmltopdf這個,這個框架需要在后端安裝一大堆東...
摘要:格式化字符串一般用于一些格式化輸出,我們來看一段例子,利用打印輸出一個購物小票。其實學習本就是從簡到難,循序漸進的打印結果如下,簡單的使用了,字符串的對齊,指定寬度,保留小數點位數等。 格式化字符串一般用于一些格式化輸出,我們來看一段例子,利用打印輸出一個購物小票。是不是會讓大家想起第一次學寫代碼,打印三角形,直角三角形等等。其實學習本就是從簡到難,循序漸進的 showImg(http...
閱讀 3523·2021-10-08 10:04
閱讀 870·2019-08-30 15:54
閱讀 2187·2019-08-29 16:09
閱讀 1353·2019-08-29 15:41
閱讀 2280·2019-08-29 11:01
閱讀 1742·2019-08-26 13:51
閱讀 1031·2019-08-26 13:25
閱讀 1819·2019-08-26 13:24