我有一个Word模板,其中包含字体,颜色等。我正在查询数据库并将信息检索到POJO
中。我想从POJO
中提取相关信息,并按照模板的指令创建一个Word文档。
该文档将包含tables
和graphs
,因此我需要使用内容控制数据绑定。据我了解,我必须执行以下操作才能实现此目标
POJO
转换为XML
对象(模板?)ContentControlMergeXML
将XML数据绑定到Word模板不幸的是,我在任何地方都找不到很好的分步示例。 docx4j
论坛中的几乎所有链接都导致破碎的GitHub
页
我的问题
OpenDoPE
向我的Word模板添加标签?我需要保留样式,所以我需要正确的OpenDoPE
版本POJO
转换为XML对象或文档?答案 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。