我是 Docx4j 的新手,我的任务是替换 docx 模板的一些文本。我阅读了 docx4j 的入门指南,但我认为我没有完全理解整个概念。好吧无论如何...我已经尝试过[Docx4j的解组模板] [1],它适用于给定的docx,但是当我在自己的模板上尝试时遇到了同样的问题 例外情况说,HashMap没有包含有效的键或值,因此它不会替换占位符。
我更换了
<w:proofErr w:type="spellEnd"/>
通过禁用拼写检查,但它仍然没有工作......而且运行该应用程序也需要相当长的时间。
不理解 Getting_Started.pdf 中的数据绑定示例,所以我用完了选项...
如何简单地替换 docx 中的一些字符串文本?
编辑:我发现如果我将一些文本添加到 unmarshallFromTemplate.docx 并保存它,它不会替换新的文本行。- 标签以某种方式分成多个标签:
<w:p w:rsidR="002512F8" w:rsidRDefault="002512F8" w:rsidP="002512F8"><w:r><w:t>My</w:t></w:r><w:r w:rsidR="001A5174"><w:t xml:space="preserve"> favourite ice cream is ${DEGREE</w:t></w:r><w:r><w:t>}.</w:t></w:r><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/></w:p>
编辑 document.xml 中的文本,并添加缺少的信息并没有多大帮助。
无论如何,这里是我使用的 Template.docx 的 document.xml:http: //uploaded.net/file/vz4qr23o
编辑2:
好吧,伙计们。我找到了一个非常适合自己的解决方法,但不知道为什么花了这么长时间才弄清楚。正如我所说:运行分裂的地方,我认为这是 ${} 的原因。因此,我只是在占位符之前使用了 # 并重写了每个占位符,这样就可以一次运行了。
不得不多次切换到 document.xml 并重写段落,但它工作了。然后我简单地使用了一个 replace(placeholder, xml) 并替换了编组后的 document.xml 的文本,然后我再次解组它。工作。故事结束,他妈的夜间构建或映射。谢谢