gpt4 book ai didi

java - docx 模板 Docx4j 替换 Java 中的文本

转载 作者:行者123 更新时间:2023-12-01 23:53:15 25 4
gpt4 key购买 nike

我是 Docx4j 新手,我的任务是替换 docx 模板的一些文本。我阅读了 docx4j 的入门指南,但我认为我没有完全理解整个概念。好吧,无论如何......我已经尝试过[Docx4j 的解压模板][1],它与给定的 docx 配合得很好,但是当我自己尝试时,我遇到了同样的问题 template异常表示 HashMap 不包含有效的键或值,因此它不会替换占位符。

我更换了

<w:proofErr w:type="spellEnd"/>

通过禁用拼写检查,但它仍然不起作用......并且运行该应用程序也需要相当长的时间。

由于不理解 Getting_Started.pdf 中的数据绑定(bind)示例,所以我没有选择...

如何简单地替换 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 并重写段落,但随后它就成功了。然后我简单地使用了替换(占位符,xml)并替换了编码的 document.xml 的文本,然后我再次将其解码。工作了。故事结束,去他妈的夜间构建或映射。谢谢

最佳答案

docx4j 源代码已经在 GitHub 上发布了一段时间;该 svn 存储库已过时。

等效样本现在称为 VariableReplace 。该代码效率更高一些,但您需要自己构建它,或者使用当前的夜间构建。

您可能会发现正在运行 VariablePrepare解决您的问题。

关于java - docx 模板 Docx4j 替换 Java 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16035688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com