wil*_*son 4 java templates copy ms-word docx4j
我有以下场景,需要一些建议:
用户将输入word文档作为模板,并在运行时提供一些参数,以便我可以查询我的数据库并获取数据来填充文档.所以,我需要做两件基本的事情:
这样做最好的方法是什么?我现在设法做了替换部分,使用unmarshallfromtemplate为它提供一个hashmap.但这种方式有点棘手,因为我需要在文档中添加"$ {variable_name}",有时单词会在不同的标签中分隔"$ {"和"}",从而导致问题.
我读过有关自定义xml绑定的内容,但完全不了解它.我需要生成一个自定义XML,将其注入文档(所有这些un运行时)并调用applybindings ?? 如果这是真的,我如何将文档中的字段绑定到xml?按名字?
docx4j包含VariablePrepare,它可以整理你的输入docx,这样你的密钥就不会分开运行.
但是,您仍然可以更好地切换到内容控制数据绑定,特别是如果您有重复数据(例如,考虑发票中的订单项). 披露:我在docx4j中支持这种方法.
采用内容控制数据绑定方法:
梦想一种对您的数据有意义的XML格式,并编写一些代码将数据库查询的结果转换为该格式.
修改模板,以便将内容控件绑定到XML文档中的元素.通常你会使用Word的创作加载项来帮助解决这个问题.(Microsoft用于绑定的技术是XPath,因此绑定方式取决于您的XML结构,但是,您通常会绑定到元素名称或ID).
现在您拥有XML文件和合适的intput docx,ContentControlsMergeXML包含在运行时创建实例文档所需的代码.在https://github.com/plutext/OpenDoPE-WAR上还有一个用于servlet环境的版本
作为1和2的替代,在当前的nightlies中还有org.docx4j.model.datastorage.migration.FromVariableReplacement,它可以转换现有的"$ {"文档.但是只有标准化的目标XML格式.
如果您还有其他问题,可以在http://www.docx4java.org/forums/data-binding-java-f16/上找到专门讨论该主题的论坛.
| 归档时间: |
|
| 查看次数: |
6151 次 |
| 最近记录: |