gpt4 book ai didi

java - 如何将自定义 XML 存储部分添加到 Word 文档 - 最好使用 docx4j

转载 作者:行者123 更新时间:2023-12-01 11:17:50 24 4
gpt4 key购买 nike

我正在尝试使用 docx4j(版本 3.2.1)用 XML 数据填充 Word 内容控件。我正在对此进行评估,以便将其用于发票生成。我们想要生成的文档不是很复杂,所以这对我来说似乎是一个很好的方法。

我通过 Word 2010 开发工具创建了内容控件。这就是我尝试将 XML 注入(inject) docx 的方法(取自 this example ):

WordprocessingMLPackage wordMLPackage = Docx4J.load(new File(input_DOCX));

FileInputStream xmlStream = new FileInputStream(new File(input_XML));

Docx4J.bind(wordMLPackage, xmlStream, Docx4J.FLAG_BIND_INSERT_XML & Docx4J.FLAG_BIND_BIND_XML);

我收到以下异常:

org.docx4j.openpackaging.exceptions.Docx4JException: Couldn't find CustomXmlDataStoragePart! exiting..
at org.docx4j.Docx4J.bind(Docx4J.java:300)
at org.docx4j.Docx4J.bind(Docx4J.java:271)

如果 CustomXmlDataStoragePart 尚不存在,如何使用 docx4j 添加它?或者我应该/可以直接在 Word 中执行此操作吗?

注意:我决定直接在 Word 中准备模板,因为以后这些模板必须由非技术用户编辑,如果可能的话,我不想给他们增加额外的工具负担。

最佳答案

您说您“通过 Word 2010 开发工具创建了内容控件”。除非您指的是内容控制工具包,否则您需要使用该工具包或更好的 OpenDoPE Word 插件。两者都不是。

这些工具将自定义 xml 部分添加到 docx 中,并允许您通过 XPath 数据绑定(bind)将其与内容控件关联。

然后,当您在运行时调用 Docx4J.bind 时,docx4j 会找到现有的自定义 xml 部分,并将其替换为您提供的包含运行时数据的 xml 文件。

关于java - 如何将自定义 XML 存储部分添加到 Word 文档 - 最好使用 docx4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31582993/

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