Apache的POI或docx4j用于处理DOCX文档[关闭](Apache POI or docx

2019-07-20 08:05发布

你觉得哪个更好用读取DOCX文档作为Java对象,为什么?

换一种说法。 该库支持大部分的字标签?

Answer 1:

披露:我带领docx4j项目

虽然docx4j也可以处理PPTX和XLSX,它主要用于DOCX操作。 通过图示的方式,在编写的时候,也有近1000主题docx4j论坛 。 该PPTX论坛只有10%的体积。

无论你想用DOCX文档做,docx4j应该能够帮助你。 有一个单页的概述一个通用的工作流程。

对于许多共同的要求,docx4j提供了更高级别的API。 这些包括:

  • 创建/打开/保存的docx(当然)

  • 报告/文档生成,使用各种方法:(I)的变量替换,(ⅱ)XML数据结合(特别强),和(iii)合并邮件

  • 导出为HTML,XHTML

  • 导出为PDF(与字体支持)

为别的,你可以操纵的docx你的心脏的内容的JAXB表示。 JAXB是Java社区的标准,包括在Java 6中,并与的EclipseLink的莫西很强的另一种实现。 (POI使用XML豆类代替JAXB的)

有一个Web应用程序来帮助你探索的docx,并生成Java代码来创建相应的Java对象。

当然,如果你心中有一些特定的任务,它可能是docx4j或POI具有特定强度存在。

无论docx4j和POI是行货ASL v2的。

docx4j正在积极保持; 它的源代码是在GitHub 。

此外,商业支持可用于docx4j如果你想要它,因为有几个商业的扩展,例如MergeDocx 。

docx4j不依赖于POI作为一个库及其实施的OLE 2复合文档格式,这是我们自己感激。



Answer 2:

我认为Apache POI的主要重点是电子表格处理,虽然我有功能读取word文档,它使用XML豆这样做。 Docx4j主要与使用JAXB DOCX文档交易。 通常JAXB使XML和Java对象转换,因此我认为docx4j是最好为您的情况。



Answer 3:

我试过的Apache POI,但问题是从打印的docx文件时,任何东西(例如:打印从DOCX所有的“标题1”的元素),它就会被打印大量坏的数据和空格的。 Docx4j将避免这种糟糕的数据,我试了一下。



Answer 4:

如果你正在处理的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-文档,编程,docx4j ?



文章来源: Apache POI or docx4j for dealing with docx documents [closed]