当前位置: 首页 > 知识库问答 >
问题:

Word 在.docx中发现不可读的内容, 使用 docx4j 在文档模板中添加 xml

曹臻
2023-03-14

首先,我创建了一个文档模板文件,并从Developer选项卡的XML Mapping窗格中添加了一个xml to MS文档。

用于内容绑定的Xml。

<employee>
<name></name>
</employee>

下面提到的方法用于将xml写入文档模板。其中该方法将documentForm(结果文档文件)、xmlSchemaFilePath(创建的xml路径)、templateForm(模板文件)作为参数。

 public String fillXMLBasedForm(String documentForm, String xmlSchemaFilePath, String templateForm)
        throws Exception {

    try {
        WordprocessingMLPackage wordMLPackage = Docx4J.load(new File(templateForm));
        FileInputStream xmlStream = new FileInputStream(xmlSchemaFilePath);
        Docx4J.bind(wordMLPackage, xmlStream, Docx4J.FLAG_BIND_INSERT_XML);
        Docx4J.save(wordMLPackage, new FileOutputStream(new File(documentForm)), Docx4J.FLAG_NONE);
    }
    catch(Exception e) {
        e.printStackTrace();
    }

    return documentForm;
}

一旦我打开生成的文档文件,然后得到“Word发现不可读的内容..”弹出菜单。当我以可信文档的身份进行操作时,发现内容没有问题,因为出于测试目的,只向其中写入了一个字符串

XML added via code. 

<employee>
<name>Vivek Singh</name>
</employee>

共有1个答案

陆博易
2023-03-14

这里是我用来解决这个问题所需的最低限度的罐子。

commons-compress-1.18
commons-io-2.6
docx4j-core-8.1.5
docx4j-JAXB-Internal-8.1.5
docx4j-openxml-objects-8.1.5
slf4j-api-1.7.26
xalan-interpretive-8.0.0
xalan-serializer-8.0.0
 类似资料: