我想使用模板创建一个Word文档,替换一些变量(字段)并将其另存为新的Word文档。
我考虑使用Apache POI,http://poi.apache.org/ 它是否最适合此目的? 你能分享一下你对它的印象吗?
我考虑使用Apache POI,http://poi.apache.org/ 它是否最适合此目的? 你能分享一下你对它的印象吗?
我不确定POI中的Word文档支持的确切状态,但根据POI网站上的信息,工作仍在进行中(无法确定具体含义)。因此,在这个时候,我不会使用POI,而是尝试生成RTF文档。为此,您可以:
我会选择iText。
如果唯一的目标是拥有一个Word模板并替换其中一些值,您可以考虑将Word模板保存为单个xml(而不是docx),然后使用简单的Java进行处理,而无需任何框架。 如果您想做更多事情(例如创建列表或表格),您还可以考虑理解xml格式并编写自己的帮助程序,然后再加载POI之类的框架。
以下是如何执行此操作的示例: http://dev-notes.com/code.php?q=10
这是快速版本,如果您想要一个漂亮的版本,可以尝试使用XML处理器。
PS:用户可能会注意到文件扩展名不是doc而是xml,并因此责怪您,但没关系...只需将其重命名为doc,Word将识别格式,每个人都会感到高兴;)
您应该研究一下Aspose.Words组件。他们最近开始提供该组件的Java版本。
请参阅以下链接:Aspose.Word for Java
该组件支持Word自动化、创建和高级功能,如邮件合并,无需在计算机上安装Microsoft Word实例。真正的好处是您能够在实际的Word文档环境中工作,而不必通过创建RTF等方式来进行妥协。
目前Java版本的功能不如.Net版本完整,但主要核心功能已经具备,并且他们正在努力推出一个功能相当的版本。
此外,如果您购买Java版本,您将获得一年免费升级/支持,以便随着新版本的发布而更新。
如果你正在处理docx文档,那么docx4j是一个选择。像POI一样,它是开源的。