回答
披露:我帶領docx4j項目
雖然docx4j也可以處理PPTX和XLSX,它主要用於DOCX操作。舉例來說,截至撰寫本文時,docx4j forum中有近1000個話題。該pptx論壇只有10%的數量。
無論你想用docx文件做什麼,docx4j都應該能夠幫助你。有一個通用工作流程的single page overview。
對於很多常見的需求,docx4j提供了更高層次的API。這些包括:
創建/打開/保存(當然)的docx
報告/文檔生成,使用各種方法:(ⅰ)變 取代,(ⅱ)XML數據綁定(特別強),和(iii)合併郵件
導出爲HTML,XHTML
導出爲PDF(具有字體支持)
對於其他任何事情,您都可以將docx的JAXB表示操作到您的內容。 JAXB是一種Java社區標準,包含在Java 6中,並且在EclipseLink的MOXy中具有強大的替代實現。 (POI使用XML Bean代替JAXB)
有一個web app可幫助您探索docx,並生成Java代碼以創建相應的Java對象。
當然,如果您有一些特定的任務,您可能會注意到docx4j或POI在那裏有一定的優勢。
docx4j和POI都是ASL v2許可的。
docx4j正在積極維護;其源代碼是on GitHub。
此外,商業支持可用於docx4j,如果需要的話,還有幾種商業擴展,例如MergeDocx。
docx4j確實依賴於POI作爲OLE 2複合文檔格式的its implementation庫,我們對此表示感謝。
我認爲Apache POI的主要重點是處理電子表格,儘管我有讀取Word文檔的功能,並且它使用xml bean來執行此操作。 Docx4j主要處理使用jaxb的docx文檔。通常jaxb允許xml到java對象轉換,因此我認爲docx4j會比較適合您的情況。
我試過Apache POI,但問題是從docx文件打印任何東西時(例如:要打印docx中的所有「Heading1」元素),它會打印大量不良數據和空格。Docx4j會避免這個不好的數據,我試過了。
如果您正在處理docx文檔,docx4j比Apache POI更方便。 您可以使用以下鏈接學習docx4j的基本知識。此外,還有一個docx4j的漂亮論壇。
1. http://blog.iprofs.nl/2012/09/06/creating-word-documents-with-docx4j/ 2. http://www.smartjava.org/content/create-complex-word-docx-documents-programatically-docx4j?
我還沒有使用過docx4j,我打算試一下。 Poi只能處理標準的openxml文檔。 Microsoft docx文件不完全支持openxml格式。如此多種格式可能會失去使用poi。 Docx4j聲稱它旨在支持docx文件的100%格式。我認爲它會更好。
- 1. 基於頁腳使用apache poi或docx4j分離docx
- 2. 使用POI或DOCX4J插入註釋到word文檔
- 3. 無法使用Apache POI讀取多於7頁的docx到String使用Apache POI
- 4. 使用apache poi處理excel文件
- 5. Apache POI - Docx輸出問題
- 6. Apache POI + RichFaces 4 - docx文件名
- 7. 預處理OpenDoPE Word文件(宏或docx4j)
- 8. 如何使用POI或docx4j將HTML文本寫入Microsoft Word文檔?
- 9. 使用Apache POI讀取和寫入.docx
- 10. 如何提取DOCX使用Apache POI
- 11. 如何使用Apache POI處理空行?
- 12. 使用Apache POI更新.docx文件的頁面標題
- 13. 如何使用Apache POI創建簡單的docx文件?
- 14. 使用Apache POI(Java)替換.docx中的文本
- 15. Apache POI Java - Docx圖表和圖形
- 16. 如何與Apache POI讀取.DOCX在Android
- 17. Apache POI(DOCX)XWPFTable不對稱單元
- 18. 用於生成.doc或.docx文檔文件的Perl模塊
- 19. 關於Apache如何處理文件上傳的任何文檔?
- 20. 如何使用Apache中的Apache POI XWPF將圖片添加到.docx文件
- 21. Docx4j將HTML轉換成DOCX
- 22. Docx4j - 文檔中的圖像
- 23. 如何通過apache poi更新docx文件的目錄(TOC)
- 24. 將excel附加到使用docx4j(或任何其他api)的.docx
- 25. 使用Apache POI的WinWord文檔中的文本替換
- 26. Apache POI解密doc文件無法處理加密文件?
- 27. Apache POI在.docx文件中設置權限區域
- 28. Outpout docx中使用Apache Poi的無限虛假網頁
- 29. Docx4j - 用圖表轉換DOCX到PDF(Java或C#)
- 30. Apache的POI PPTX到圖像佔用太多的處理時間
所有的處理來自XML解析的權利? 例如我可以通過docx4j交互式使用word文檔。就像我想搜索某些文本並按搜索框一樣選擇結果? – becks 2013-02-24 09:32:29
將XML解編到JAXB對象中;處理通常在那個級別完成。 docx4j是一個庫。要交互使用它,你必須製作一個交互式應用程序。 docx4all是一個基於docx4j的交互式應用程序(一個字處理程序)的例子。使用docx4j,您可以搜索文本,並對結果進行處理。 – JasonPlutext 2013-02-24 11:52:22
docx4j是否支持docx文件中的表格?我剛剛嘗試創建一個採購訂單docx文件並將其轉換爲pdf,表格格式非常糟糕。我在docx4j網站上使用了示例webapp:http://webapp.docx4java.org/OnlineDemo/docx_to_pdf_fop.html – 2013-12-07 03:42:01