1

我有一个 Word 模板,包含字体、颜色等。我正在查询数据库并将信息检索到POJO. 我想从中提取相关信息POJO并根据我的模板指令创建一个 Word 文档。

该文档将具有tablesgraphs因此我需要使用内容控制数据绑定。据我了解,我必须执行以下操作才能实现这一目标

  1. 修改 Word 模板以添加内容控件
  2. 将 转换POJOXML对象(模板?)
  3. 用于ContentControlMergeXML将 XML 数据绑定到 Word 模板

不幸的是,我在任何地方都找不到一个好的分步示例。论坛中几乎所有的链接docx4j都会导致GitHub页面损坏

我的问题

  1. 如何使用OpenDoPE将标签添加到我的 Word 模板?我需要保留风格,所以我想要正确的OpenDoPE版本
  2. 是否应该将POJO其转换为 XML 对象或文档?
  3. 是否有整个过程的端到端示例,以便我可以跟进?(最好有源代码)
4

1 回答 1

2

内容控件数据绑定实质上是将 XPath 值注入 Word 文档中的内容控件。

XPath 是针对 XML 文档评估的,所以是的,您需要将 POJO 转换为 XML。

创作

现在,您可以使用 3 种不同的 OpenDoPE Word 插件将内容控件添加到您的 Word 文档中。请参阅https://opendope.org/implementations.html上的链接

最近的一个采用固定的 XML 格式。因此,要使用它,您需要转换 POJO 以匹配该格式。(即使用 AddIn 来编写您的 docx,然后检查生成的 XML(嵌入在 docx 中),然后找出如何将您的 POJO 转换为那个)。

较旧的插件支持任意 XML,但比较粗糙。要使用其中之一,首先将您的 POJO 转换为 XML(例如使用 JAXB),然后将 AddIn 提供给您的示例 XML。

运行

要将您的 XML 绑定到 docx“模板”以创建实例 docx,请参阅https://github.com/plutext/docx4j/blob/master/docx4j-samples-docx4j/src/main/java/org/docx4j/samples /ContentControlBindingExtensions.java

您可以针对示例 docx + 数据运行该示例代码;您可以查看 docx 以了解内容控件的外观(它们在 docx 中绑定了自定义 xml 部分,因此解压缩以查看)

ps 由于最近的代码重组,GitHub 链接中断。GitHub 不够聪明,无法动态维护它们 :-( 有关可下载的示例代码,请参阅https://www.docx4java.org/downloads.html

于 2019-04-30T08:42:04.620 回答