您认为将docx文档作为java对象阅读哪个更好?为什么?
换句话说,哪个库支持大多数单词标签?
答案 0 :(得分:21)
披露:我领导docx4j项目
虽然docx4j也可以处理pptx和xlsx,但它主要用于docx操作。举例来说,截至撰写本文时,docx4j forum中有近1000个主题。 pptx论坛只有10%的音量。
无论您想对docx文档做什么,docx4j都应该能够为您提供帮助。有一个single page overview通用工作流程。
对于许多常见要求,docx4j提供更高级别的API。其中包括:
创建/打开/保存docx(当然)
使用各种方法生成报告/文档:(i)变量 替代,(ii)XML数据绑定(特别强),以及(iii)Mailmerge
导出为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的库,我们对此表示感谢。
答案 1 :(得分:2)
我认为Apache POI主要关注的是处理电子表格,虽然我有阅读word文档的功能,但它使用xml bean来实现。 Docx4j主要使用jaxb处理docx文档。通常jaxb允许xml到java对象转换,因此我认为docx4j更适合你的情况。
答案 2 :(得分:2)
我尝试过Apache POI,但问题是从docx文件打印任何内容时(例如:打印所有" Heading1"来自docx的元素),它会打印出大量不良数据和空白。 Docx4j会避免这些不良数据,我试过了。
答案 3 :(得分:2)
如果您正在处理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?