如何使用带有OpenDoPE的Content Control数据绑定从模板创建Word文档

时间:2019-04-29 17:19:55

标签: java ms-word docx4j word-contentcontrol

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

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

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

不幸的是,我在任何地方都找不到很好的分步示例。 docx4j论坛中的几乎所有链接都导致破碎的GitHub

我的问题

  1. 如何使用OpenDoPE向我的Word模板添加标签?我需要保留样式,所以我需要正确的OpenDoPE版本
  2. 是否应该将POJO转换为XML对象或文档?
  3. 在整个过程中是否有一个端到端的示例,所以我可以继续下去吗? (最好带有源代码)

1 个答案:

答案 0 :(得分:0)

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

该XPath是针对XML文档进行评估的,因此,是的,您需要将POJO转换为XML。

创作

现在,有3种不同的OpenDoPE Word加载项,可用于将内容控件添加到Word文档。请参阅https://opendope.org/implementations.html

上的链接

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

较旧的AddIns支持任意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