docx4j - исключение NullPointerException в VariablePrepare.prepare () - PullRequest
0 голосов
/ 27 ноября 2018

Когда я создаю .docx с использованием онлайн-версии Office365, моя программа вылетает при вызове VariablePrepare.prepare()

Соответствующие строки кода:

InputStream inputStream = new ByteArrayInputStream(docxFileContent);
WordprocessingMLPackage wordprocessingMLPackage = WordprocessingMLPackage.load(inputStream);
VariablePrepare.prepare(wordprocessingMLPackage);

Трассировка стека:

Caused by: java.lang.NullPointerException
    at org.docx4j.openpackaging.packages.WordprocessingMLPackage.transform(WordprocessingMLPackage.java:271)
    at org.docx4j.openpackaging.packages.WordprocessingMLPackage.filter(WordprocessingMLPackage.java:297)
    at org.docx4j.model.datastorage.migration.VariablePrepare.prepare(VariablePrepare.java:79)

Мой документ, созданный с помощью Online Office 365: https://drive.google.com/file/d/1MGZpsKZokmw6nyLbt_aAxsueUBl5tMnq/view?usp=sharing

Обратите внимание, что при проверке свойств этого файла пропускаются значения для базовых элементов, таких как страницы, количество слов, символПодсчет и т. Д. См. https://drive.google.com/file/d/1Vvuf2zJvGqigX6SMVu-C6EMsYXu0378I/view?usp=sharing.Если вы открываете документ в версии Office для настольного компьютера, эти значения внезапно заполняются, и сбой больше не происходит.Эта проблема относится только к документам, полученным из Online Office 365.

1 Ответ

0 голосов
/ 28 ноября 2018

Теперь исправлено на https://github.com/plutext/docx4j/commit/b877520c0a02804f00b2fce57d56405f045947f0

, этот бит кода принимал word / document.xml, что неверно для вашего документа.

Это исправление будет в docx4j 6.1.0(и в ночной выпуск раньше).

...