3

我有一个 .docx 模板,其中定义了字段。我需要获取用户在 Web 服务中输入的数据,并使用 Java 将其插入到这些字段中。

我和我的团队大部分时间都在研究这个问题,但我们一直无法找到一个直接的解决方案。

有没有办法相对容易地做到这一点?

谢谢。

编辑:

  • 按 alt+F9 后,所有字段显示如下:{ FORMTEXT }

  • POI 似乎没有足够的支持来做到这一点。

  • 我无法在 Windows XP 中成功设置 Open Office SDK,因为我无法满足它的所有依赖项。

  • docx4j 可能有效,但其中的 MailMerger 当前未使用给定数据填充字段。

  • 如果我提取 docx 并打开 word/document.xml 文件,这就是围绕一个字段的 XML 的样子:http : //pastebin.com/uXBtz7X5(搜索 FieldName 和 FieldValue 以查看它们的定义位置)

4

4 回答 4

4

看看 Docx4j,您可以使用它来更新 docx 文档中的字段,还有示例

字段更新程序示例

于 2014-01-03T15:22:32.757 回答
3

披露:我公司赞助 docx4j

看看MailMerger;见底部的主要方法。

对于其他类型的字段,您可以尝试更通用的字段支持。

于 2012-07-26T23:19:28.657 回答
0

docx 格式是一个 zip 文件,里面有 XML 和其他文件。您可以使用标准 XML 工具编辑 XML 文件。

于 2012-07-27T19:34:41.557 回答
0

Docmosis 和 JODReports 可能会对您有所帮助 - 它们是用于以多种格式生成文档/填充模板的 Java 库。Docmosis 可以与 DocX 一起使用,因为它们基于相同的技术,所以 JODReports 可能也可以。我不知道特定的 {FORMTEXT} 字段是否可以工作,但是当您按 ALT-F9 时,Docmosis 可以处理纯文本文件或看起来像 {MERGEFIELD} 的 Word 合并字段。

于 2012-08-08T01:07:01.597 回答