Java的云打印Lodop
Lodop是一款專業(yè)的WEB打印控件,其設(shè)計(jì)目標(biāo)是簡(jiǎn)單易用、功能足夠強(qiáng)大,開創(chuàng)WEB打印開發(fā)的新局面。
Lodop設(shè)計(jì)者對(duì)WEB下的打印開發(fā)任務(wù)進(jìn)行了分類匯總,高度抽象,設(shè)計(jì)出僅用幾個(gè)功能函數(shù),就可實(shí)現(xiàn)復(fù)雜的打印任務(wù),盡量減少使用者的知識(shí)累贅。控件發(fā)布包有3個(gè)系統(tǒng)文件組成,全部功能用幾個(gè)控件參數(shù)和2組功能函數(shù)來實(shí)現(xiàn)。
打印某一個(gè)網(wǎng)頁上的內(nèi)容我們都經(jīng)常遇到過,比如網(wǎng)上申請(qǐng)港澳通行證時(shí)需要填寫申請(qǐng)表,然后把申請(qǐng)表給打印出來。像這樣的打印技術(shù)是怎么實(shí)現(xiàn)?這種打印可以通過一種叫云打印的插件來做,按我的理解云打印的技術(shù)把需要打印的內(nèi)容上傳到“云”服務(wù)器,然后經(jīng)過服務(wù)器傳輸?shù)酱蛴C(jī)中。
平時(shí)我們上網(wǎng)的時(shí)候可以直接在某個(gè)網(wǎng)頁上點(diǎn)擊打印,這種打印叫做網(wǎng)絡(luò)打印,是將數(shù)據(jù)存放在打印設(shè)備或打印機(jī)內(nèi)置的存儲(chǔ)設(shè)備上,而云打印是將數(shù)據(jù)存放到“云”端。
打印技術(shù)在很多開發(fā)項(xiàng)目中都會(huì)用到,我們項(xiàng)目組已經(jīng)開發(fā)完的一個(gè)塘廈項(xiàng)目中就用到了打印技術(shù),打印實(shí)現(xiàn)需要在eclipse中加入已經(jīng)下載好的打印文件。
接下來是整個(gè)打印實(shí)現(xiàn)的過程:
(1)準(zhǔn)備材料
在Java編譯器eclipse中,把上面下載好的這個(gè)文件放到對(duì)應(yīng)的文件夾中,放哪都行,只要引用的時(shí)候路徑引用對(duì)就行。
.exe文件是在客戶端需要安裝的一些插件,看瀏覽器(客戶端)是多少位的就按照哪個(gè)。
這個(gè)打印只和前端有關(guān),后臺(tái)代碼不需要做什么。
(2)需求要實(shí)現(xiàn)的效果
點(diǎn)擊打印后這個(gè)頁面的傳到打印頁面,預(yù)覽后打印出A4紙。
(3)在代碼里面實(shí)現(xiàn)
首先要print.html頁面引用打印的JS文件
<!-- 打印插件 --> <script src="/js/Lodop/LodopFuncs.js" type="text/javascript"></script> <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed> </object>
這是打印的html頁面
<form action="offcomplete/print" method="post"> <input type="hidden" id="id" name="offBatchfile.id" value="${offBatchfile.id!}" /> <%if(off.display_Name == null){%> <div class="print_btn_box"> <a href="#" onclick="PrintURL()" class="btn btn-default"><i class="fa fa-print"></i>打印</a> <a href="/offcomplete/export/${printUsefullId!}" class="btn btn-default"><i class="fa fa-file-word-o"></i>下載</a> </div> <%}%> <div align="center" id="print"> <% include("/offcomplete/view.html"){}%> </div> </form>
然后給打印按鈕一個(gè) click 事件
<script type="text/javascript"> //打印注冊(cè) function PrintURL() { try { var LODOP = getLodop(document.getElementById('LODOP_OB'), document .getElementById('LODOP_EM')); LODOP.PRINT_INIT(""); LODOP.SET_PRINT_STYLE("FontSize", 18); LODOP.SET_PRINT_STYLE("Bold", 1); LODOP.ADD_PRINT_HTM(45, 55, 770, 1004, document .getElementById("print").innerHTML); LODOP.PREVIEW(); } catch (e) { } } </script>
如果這些步驟都做完了就可以實(shí)現(xiàn)打印了,在客戶端打印的時(shí)候可能會(huì)遇到一些問題(IE瀏覽器不會(huì)出現(xiàn)),比如要提示這樣的安裝信息。那就說明沒有安裝 install_lodop 安裝前最好看一下電腦的操作系統(tǒng)和所用的瀏覽器是多少位的,分為32位和64位,選擇安裝。
希望我的分享能留有余香,我建議不管做什么樣的Web項(xiàng)目,瀏覽器的選擇還是挺重要的。
一般來說我習(xí)慣開始就用IE,因?yàn)椴还苁钦l買了電腦,微軟的東西肯定是必不可少的就裝在了系統(tǒng)里,除非不是Windows操作系統(tǒng)的電腦,而且IE對(duì)很多瀏覽器來說算是最低端的,其他瀏覽器多多少少也會(huì)有IE內(nèi)核,開發(fā)出來的東西最低端的瀏覽器運(yùn)行都不出問題,那根據(jù)客戶下載喜好的高級(jí)瀏覽器那就更沒問題了,理論上是這么的,低版本的都能過關(guān)了,更何況高版本的。當(dāng)然作為開發(fā)者還是青睞于狐火瀏覽器,用它來調(diào)試比較好。
相關(guān)文章
java 動(dòng)態(tài)增加定時(shí)任務(wù)示例
本篇文章主要介紹了java 動(dòng)態(tài)增加定時(shí)任務(wù)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03springboot項(xiàng)目test文件夾下帶main方法的類不能運(yùn)行問題
這篇文章主要介紹了springboot項(xiàng)目test文件夾下帶main方法的類不能運(yùn)行問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11MyBatis之關(guān)于動(dòng)態(tài)SQL解讀
這篇文章主要介紹了MyBatis之關(guān)于動(dòng)態(tài)SQL解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Spring中的NamespaceHandler接口及相關(guān)軟件包說明
這篇文章主要介紹了Spring中的NamespaceHandler接口及相關(guān)軟件包說明,NamespaceHandler 接口,DefaultBeanDefinitionDocumentReader 使用該接口來處理在spring xml 配置文件中自定義的命名空間,需要的朋友可以參考下2023-12-12Spring負(fù)載均衡LoadBalancer使用詳解
這篇文章主要介紹了Spring負(fù)載均衡LoadBalancer使用詳解,Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客戶端負(fù)載均衡器, 用來替代Ribbon,Spring官方提供了兩種客戶端都可以使用loadbalancer,需要的朋友可以參考下2023-11-11java中MultipartFile互轉(zhuǎn)File的方法
本文主要介紹了java中MultipartFile互轉(zhuǎn)File的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10JAVA基礎(chǔ)之基本數(shù)據(jù)類型全面解析
下面小編就為大家?guī)硪黄狫AVA基礎(chǔ)之基本數(shù)據(jù)類型全面解析。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07Java數(shù)據(jù)結(jié)構(gòu)之位圖的簡(jiǎn)單實(shí)現(xiàn)和使用
位圖,?是一種非常常見的結(jié)構(gòu),?它使用每個(gè)二進(jìn)制位來存放一個(gè)值的狀態(tài),?就類似于?Java?當(dāng)中?HashSet?存儲(chǔ)元素的功能。本文主要來介紹一下位圖的簡(jiǎn)單實(shí)現(xiàn)和使用,需要的可以參考一下2023-05-05