Apache POI 或 docx4j 用于处理 docx 文档 [已关闭]

2022-09-02 00:51:19

您认为使用哪个文档作为java对象阅读哪个更好,为什么?

换句话说。哪个库支持大多数单词标签?


答案 1

披露:我领导docx4j项目

虽然 docx4j 也可以处理 pptx 和 xlsx,但它主要用于 docx 操作。举例来说,在撰写本文时,docx4j论坛中有近1000个主题。pptx论坛只有10%的音量。

无论您想对 docx 文档执行什么操作,docx4j 都应该能够为您提供帮助。通用工作流有一个单页概述

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

  • 创建/打开/保存文档(当然)

  • 报告/文档生成,使用多种方法:(i) 变量替换,(ii) XML 数据绑定(特别强)和 (iii) Mailmerge

  • 导出为 HTML、XHTML

  • 导出为 PDF(支持字体)

对于其他任何内容,您可以按照自己的内心内容操作 docx 的 JAXB 表示形式。JAXB是一个Java社区标准,包含在Java 6中,并且在EclipseLink的MOXy中具有强大的替代实现。(POI 使用 XML Bean 而不是 JAXB)

有一个 Web 应用程序可以帮助您浏览 docx,并生成 Java 代码以创建相应的 Java 对象。

当然,如果您想到了一些特定的任务,可能是docx4j或POI在那里具有特殊的优势。

docx4j 和 POI 都是 ASL v2 许可的。

docx4j是积极维护的;它的源代码在GitHub上

此外,如果需要,docx4j可以使用商业支持,以及几个商业扩展,例如MergeDocx

docx4j 确实依靠 POI 作为实现 OLE 2 复合文档格式的库,我们对此表示感谢。


答案 2

我认为Apache POI的主要重点是处理电子表格,尽管我有读取Word文档的功能,并且它使用xml bean来做到这一点。Docx4j主要使用jaxb处理docx文档。通常jaxb允许xml到java对象转换,因此我认为docx4j更适合您的情况。


推荐