java生成word的幾種方案


http://blog.sina.com.cn/s/blog_a5e968370101crtl.html

 

 1、 Jacob是Java-COM Bridge的縮寫,它在Java與微軟的COM組件之間構建一座橋梁。使用Jacob自帶的DLL動態鏈接庫,並通過JNI的方式實現了在Java平台上對COM程序的調用。DLL動態鏈接庫的生成需要windows平台的支持。

 

2、 Apache POI包括一系列的API,它們可以操作基於MicroSoft OLE 2 Compound Document Format的各種格式文件,可以通過這些API在Java中讀寫Excel、Word等文件。他的excel處理很強大,對於word還局限於讀取,目前只能實現一些簡單文件的操作,不能設置樣式。

 

3、 Java2word是一個在java程序中調用 MS Office Word 文檔的組件(類庫)。該組件提供了一組簡單的接口,以便java程序調用他的服務操作Word 文檔。 
這些服務包括: 打開文檔、新建文檔、查找文字、替換文字,插入文字、插入圖片、插入表格,在書簽處插入文字、插入圖片、插入表格等。填充數據到表格中讀取表格數據 ,1.1版增強的功能: 指定文本樣式,指定表格樣式。如此,則可動態排版word文檔。

 

4、 iText操作Excel還行。對於復雜的大量的word也是噩夢。用法很簡單, 但是功能很少, 不能設置打印方向等問題。

 

5、 JSP輸出樣式基本不達標,而且要打印出來就更是慘不忍睹。

 

6、 用XML做就很簡單了。Word從2003開始支持XML格式,大致的思路是先用office2003或者2007編輯好word的樣式,然后另存為xml,將xml翻譯為FreeMarker模板,最后用java來解析FreeMarker模板並輸出Doc。經測試這樣方式生成的word文檔完全符合office標准,樣式、內容控制非常便利,打印也不會變形,生成的文檔和office中編輯文檔完全一樣。

 

7、補充一種方案,可以用類似ueditor的在線編輯器編輯word文檔,在將html文件轉換為xhtml文件,再轉換為word。

 

8、利用PageOffice插件網頁編輯word,還有weboffic插件等

參考網址

http://www.officectrl.com/webofficeview.htm

http://www.zhuozhengsoft.com/PageOffice/

http://www.itkeyword.com/doc/5122096026019575887/pageoffice-word

http://www.iqiyi.com/w_19rue2tp6t.html

https://www.cnblogs.com/qq742655/p/9025784.html

java生成pdf方案總結

1. Jasper Report生成pdf:設計思路是先生成模板,然后得到數據,最后將兩者整合得到結果。但是Jasper Report的問題在於,其生成模板的方式過於復雜,即使有IDE的幫助,我們還是需要對其中的眾多規則有所了解才行,否則就會給調試帶來極大的麻煩。

2. openoffice生成pdf:openoffice是開源軟件且能在windows和linux平台下運行。

3. itext + flying saucer生成pdf:itext和flying saucer都是免費開源的,且與平台無關,結合css和velocity技術,可以很好的實現。

 

一般使用第三種方案比較多,它實現的步驟是非常簡單的。

JAVA生成word優缺點對比

所用技術

優點

缺點

Jacob

功能強大

代碼量大,設置樣式繁瑣;需要windows平台支持,無法跨平台

Apache POI

讀寫excel功能強大、操作簡單

一般只用它讀取word,能夠創建簡單的word,不能設置樣式,功能太少

Java2word

功能強大,操作簡單

能滿足一般要求,不支持07格式,國人開發的,參考資料較多,需要windows平台支持

iText

功能全,能滿足一般要求

不能直接生成或操作doc文檔,只能生成rtf格式的文檔,rtf也可以用word打開

JSP

操作簡單,代碼量少

能把當前頁面導出簡單的word,不能設置樣式,美觀性差,無法操作word

XML(最佳)

代碼量少,樣式、內容容易控制,打印不變形,完全符合office標准

需要提前設計好word模板,把需要替換的地方用特殊標記標出來

 

JAVA生成pdf優缺點對比

 

所用技術

優點

缺點

openoffice

本身就是office軟件,很容易設計一些文檔模板,支持java調用實現word轉換成pdf

需要先安裝,設計好pdf模板樣式,然后用程序來填充那些預留好的變量

itext 

能滿足要求,本身提供了一些api

無法識別很多html的tag和attribute,無法識別css,需要用其api函數來設置樣式

Jasper Report

能滿足要求,市面上使用的比較多,相關文檔多

復雜,很難完全掌握,需要先設計模板,強依賴於IDE進行可視化編輯

flying sauser(最佳)

能解析html和css輸出成image、pdf等格式,操作簡單,api強大

需要編寫freemarker或velocity模板,打造html,勾畫pdf的樣式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM