Word обнаружил нечитаемый контент в .docx, добавив xml в шаблон документа с помощью docx4j - PullRequest
0 голосов
/ 23 апреля 2020

Сначала я создал файл шаблона документа и добавил xml в документ MS из XML Панель отображения вкладки Разработчик.

Xml, используемый для привязки содержимого.

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

Приведенный ниже метод используется для записи xml в шаблон do c. Где этот метод принимает documentForm (результат do c файл), xmlSchemaFilePath (созданный xml путь), templateForm (файл templete) в качестве аргументов.

 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 нашел нечитаемый контент .. "всплывающее окно. как только я перехожу к доверенному документу, то не обнаруживаю проблем в содержании, потому что для целей тестирования записывается только одна строка.

1 Ответ

0 голосов
/ 24 апреля 2020

Вот минимально необходимые банки, которые я использовал для решения этой проблемы.

commons-compress-1.18 commons-io-2.6 docx4j-core-8.1.5 docx4j-JAXB-Internal-8.1.5 docx4j-open xml -объекты-8.1.5 slf4j-api-1.7. 26 xalan-interpretive-8.0.0 xalan-serializer-8.0.0

...