2013-02-21 160 views

回答

18

披露:我帶領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庫,我們對此表示感謝。

+0

所有的處理來自XML解析的權利? 例如我可以通過docx4j交互式使用word文檔。就像我想搜索某些文本並按搜索框一樣選擇結果? – becks 2013-02-24 09:32:29

+1

將XML解編到JAXB對象中;處理通常在那個級別完成。 docx4j是一個庫。要交互使用它,你必須製作一個交互式應用程序。 docx4all是一個基於docx4j的交互式應用程序(一個字處理程序)的例子。使用docx4j,您可以搜索文本,並對結果進行處理。 – JasonPlutext 2013-02-24 11:52:22

+0

docx4j是否支持docx文件中的表格?我剛剛嘗試創建一個採購訂單docx文件並將其轉換爲pdf,表格格式非常糟糕。我在docx4j網站上使用了示例webapp:http://webapp.docx4java.org/OnlineDemo/docx_to_pdf_fop.html – 2013-12-07 03:42:01

2

我認爲Apache POI的主要重點是處理電子表格,儘管我有讀取Word文檔的功能,並且它使用xml bean來執行此操作。 Docx4j主要處理使用jaxb的docx文檔。通常jaxb允許xml到java對象轉換,因此我認爲docx4j會比較適合您的情況。

2

我試過Apache POI,但問題是從docx文件打印任何東西時(例如:要打印docx中的所有「Heading1」元素),它會打印大量不良數據和空格。Docx4j會避免這個不好的數據,我試過了。

0

我還沒有使用過docx4j,我打算試一下。 Poi只能處理標準的openxml文檔。 Microsoft docx文件不完全支持openxml格式。如此多種格式可能會失去使用poi。 Docx4j聲稱它旨在支持docx文件的100%格式。我認爲它會更好。

相關問題