回答
披露:我帶領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. 使用APACHE POI處理docx文件
- 3. 如何使用POI或使用docx4j獲得Word文檔的TOC?
- 4. 使用POI或DOCX4J插入註釋到word文檔
- 5. POI或docx4j可以讀取密碼保護的Word文檔嗎?
- 6. 無法使用Apache POI讀取多於7頁的docx到String使用Apache POI
- 7. 從docx獲取Apache POI中的圖片位置文檔
- 8. 的Apache POI Word文檔(.doc和.docx)更新
- 9. 使用apache poi處理excel文件
- 10. Apache POI - Docx輸出問題
- 11. Apache POI + RichFaces 4 - docx文件名
- 12. apache POI打開docx文件失敗
- 13. 預處理OpenDoPE Word文件(宏或docx4j)
- 14. 如何使用POI或docx4j將HTML文本寫入Microsoft Word文檔?
- 15. 使用Apache POI的Word文檔中的間距和邊距設置docx
- 16. 如何提取DOCX使用Apache POI
- 17. 使用Apache POI讀取和寫入.docx
- 18. 如何在docx文檔中的表格之後設置空格(使用apache poi)
- 19. 以編程方式創建Word(.docx)文檔使用docx4j
- 20. 如何使用Apache POI處理空行?
- 21. 使用Apache POI將圖像添加到單詞.docx文檔頭中XWPF
- 22. 使用Apache POI更新MSWord文檔
- 23. 使用Apache POI編輯Word文檔
- 24. 使用docx4j加密docx文件
- 25. 使用docx4j-doc生成docx文件
- 26. 如何使用Apache POI創建簡單的docx文件?
- 27. 使用Apache POI更新.docx文件的頁面標題
- 28. 使用Apache POI(Java)替換.docx中的文本
- 29. 處理apache poi中的空列
- 30. Apache POI(DOCX)XWPFTable不對稱單元
所有的處理來自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