亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

分析幾個主流類型的Java報表打印工具!

發布時間:2020-08-09 21:26:45 來源:ITPUB博客 閱讀:395 作者:javarep 欄目:編程語言

本文試圖對市面上流行的純java實現的web報表工具,jasperreport 、 stylereport 、杰表、潤乾報表、快逸、finererport為例,分析各報表工具采用的web打印技術的異同、優劣、及對用戶需求的適應性,供大家參考。
打印是報表工具的基本功能之一,有些報表工具就是從一個專門的打印程序中發展而來,如用友華表。因為想當然地簡單,所以,在報表工具選型時用戶常常忽略這個問題,特別是有些報表工具廠商,明知自己的打印方案在滿足某些需求時,存在缺陷,但沒有盡明確告知義務,而事先有關打印方面的文檔。我曾不至一次地聽說,有些開發商選用的報表工具,其打印功能不能滿足需求,不得不另外找打印工具的事情,實在是吃盡苦頭。
報表打印在c/s時代,確實非常簡單,vb,vc,Delphi,pb,都有很好用的打印api,有的甚至用報表控件方式,搞定打印更是分分秒的事情,但今天是b/s的天下,報表都是在網頁瀏覽器中顯示,但當今的瀏覽器打印功能一般非常弱(誰讓你叫他“瀏覽”器呢?“瀏覽”就是讓你用眼睛看,“打印”屬于兼職),要做到精確分頁打印,幾乎不可能,所以當前的報表工具,一般不會讓你使用瀏覽器的打印菜單來打印報表,都有自己的解決方案,這下可好,各報表工具廠商由是乎,八仙過海,各顯神通,各家都說自己的好,對于web打印了解不深的客戶,總有霧里看花的感覺。
歸納來說,當今java報表工具采用的打印技術不外乎三類:Applet打印、導出成pdf/excel打印、控件打印。用戶選用的重點是:盡量選擇插件小的打印軟件,因為文件小意味著安裝迅速,啟動速度快。插件大小除了插件本身的大小外,還需要考慮支持軟件的大小,如有些插件很小,支持軟件卻很大。
Applet打印
本文開始處提及的報表工具,除finereport外都支持Applet打印。之所以多數廠商支持Applet方式打印,因為Applet是java實現,與java后臺、java報表設計器的兼容性較好,代碼容易維護,實現也方便。然而,廠商省事,用戶就得多事。Applet方式打印,用戶最多的抱怨是需要安裝jre(而當前的操作系統,一般不是默認安裝的),雖然說,多數廠商已經做到可以自動安裝jre,但對于10幾M(JRE1.4有15M,JRE1.5為16M))的安裝,這意味著用戶需要較長時間的等待。
另一個問題是Applet配置復雜,使用不穩定。1995年,正是因為給人們無窮的視覺和腦力震蕩的Applet ,使人們認識了java,認識了Games Gosling。所以在b/s早期,人們為了展現html的富客戶效果,Applet是唯一之選。但現如今,Applet已經是昨日黃花,早已被ajax、flex取代,是什么原因?戰略層面的東西,我也不太說得清楚,但作為程序員,經過幾番折騰后,也不會愿意再用Applet了。如經常莫名其妙地出現“小應用程序,… notinited”的錯誤,還得清理ie緩存,對于Applet打印,還需要設置jre的安全策略等等。不是靠終端用戶能完成的,這就必須額外地增加開發商的服務成本。
Applet打印,啟動速度慢。Applet打印原理是,當你點擊打印按鈕時,瀏覽器啟動Applet,Applet根據參數訪問后臺頁面信息,后臺返回頁面,Applet加載頁面后,調用jre的打印服務進行打印。這就意味著,每次打印都需要調用后臺服務程序,就必然影響打印的響應速度。
Applet打印很安全,言下之意是ActiveX打印不安全,這是采用Applet打印的廠商津津樂道的,實際上,這是一個偽命題。Applet和ActiveX都是瀏覽器的插件,我們當然不希望下載插件后,該插件可以為所欲為,比如,刪除你磁盤里的文件,或啟動一個木馬,從這點來說,Applet確實比ActiveX安全,因為Applet是在一個受限的環境里運行,而ActiveX是不受限的。所以,當你訪問一個陌生的網站時,出于安全考慮,你可能會允許下載運行Applet,而阻止ActiveX。但當用戶訪問自己的網站系統,時,這種擔心就沒必要,這好比,當你與陌生人打交道時,很自然地會問自己,這人可信嘛?但如果你與家里人打交道,這個問題就不成其為問題了。
Applet打印,除了可以設置打印機,設置紙張頁面大小等常規打印功能外,往往也集成與打印不相關的功能,比如,打印前修改(有人說,是為了做假帳方便,中國特色,國產報表工具一般都具備,jasperreport,stylereport不支持),按行分頁,自由定位,這些本來由設計器完成的功能,挪到打印功能上來,來掩蓋上面指出的Applet的種種不足。實際上,Applet功能強弱完全取決于Applet的大小,有些報表廠商甚至用Applet或web start 的方式,提供所謂的基于web的報表設計,前提是下載 40多M的jar包,實際上,這種方案遠非一般意義上的純web 的報表設計,完全是混淆概念。作為用戶最希望常規的,他們熟悉的打印功能,不需要不相關的,理解困難的打印功能。
PDF/EXCEL打印 Pdf打印方式,就是用戶點擊打印后,瀏覽器會自動彈出adobe reader,再利用adobe的打印按鈕進行打印,由于國外adobe reader安裝非常普及,國外的java報表工具多提供這種打印方案,比如 stylereport,jasperreport,國內報表工具finereport也采用這種方式(讓人不解),pdf方式打印的好處是能做到精確打印,而且報表預覽與打印一氣呵成。但不足是需要在客戶的機子里,事先安裝有adobe reader,作為程序員,一般不太會有問題,因為程序員可能經常要瀏覽一些pdf文檔,多數已經裝了adobe reader,但國內的終端用戶,大多不知pdf是何物,更談不上安裝。
Pdf打印的另一個問題是必須彈出adobe reader,不能做到無預覽打印,這可能由于pdf缺少相應api的緣故吧。
輕量級的ActiveX打印
這里之所以強調“輕量級”,目的是與傳統意義上的ActiveX報表相區別。ActiveX技術可以說是報表工具家族里的沒落貴族,c/s時代,報表工具一般都被做成控件形式,水晶報表就是如此,在b/s時代,報表工具里仍然能看到ActiveX的身影,但風光大不如從前,如數巨,明宇,用友華表,inforeport。用ActiveX實現報表的不足,在網上你能輕易找到,在此不再詳述。ActiveX 報表雖深受詬責,但從打印功能來說,卻都是近乎完美,處理得卻非常好,非常穩定。
既然,ActiveX打印是長處,能不能揚長避短地使用ActiveX技術?有人提出這樣的問題。于是,有些廠商,比如杰表,采用了瀏覽時用html,打印時用插件的方式。這種方案的需要解決的問題是,ActiveX打印控件,不能太大,否則報表工具成了ActiveX報表了。
與Applet相比,輕量級ActiveX打印具有以下優勢:
1. 下載時間短,(大小是Applet的1/250);
2. 本地打印,打印時,不需要訪問后臺服務程序,不占用服務器資源;
3. 啟動速度快,由于控件小,且本地打印,所以打印速度是優于以上兩中打印方案,打印速度與你點擊瀏覽器打印菜單相差無幾。
采用輕量級的ActiveX打印的不足是,只有ie 5.5 及以上版本支持,其他版本的瀏覽器不支持。好在ie5.5瀏覽器已非常普及,在用戶那里應該不是大問題。
杰表采用的打印方案,用一個jatoolsPrinter的控件,大小是60k,是經過數字簽名的。這個打印控件采用ie特有的打印技術(templateprinter)實現打印功能,支持打印,預覽,邊距設置,重復打印,批量打印功能。
目前,jatoolsPrinter已經從杰表中獨立出來,任何報表工具或第三方軟件都利用該控件,實現web打印,推出至今,免費加收費用戶上萬。
下表總結三種方式的采用者及優劣對比,對于ie5.5客戶來說,我們推薦使用ActiveX打印方案.


報表廠商列表
jasperreport
Stylereport
杰表
潤乾
快逸
finererport

分析幾個主流類型的Java報表打印工具!

[@more@]
向AI問一下細節

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

AI

宁波市| 林周县| 通榆县| 周至县| 金昌市| 申扎县| 东海县| 岗巴县| 金寨县| 石河子市| 简阳市| 双城市| 崇左市| 宝坻区| 渑池县| 仁寿县| 白银市| 安吉县| 灵璧县| 南靖县| 濉溪县| 南通市| 晋江市| 盐城市| 许昌市| 苍山县| 萍乡市| 武清区| 仁寿县| 竹溪县| 鸡西市| 甘德县| 甘孜县| 绥棱县| 蓬溪县| 大余县| 马关县| 庐江县| 蒙山县| 玛沁县| 抚顺市|