docx4j - VariablePrepare.prepare() 中的 NullPointerException
docx4j - NullPointerException in VariablePrepare.prepare()
当我使用在线版 Office365 创建 .docx 时,我的程序在调用 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 的文档。
现已固定为 https://github.com/plutext/docx4j/commit/b877520c0a02804f00b2fce57d56405f045947f0
那部分代码假设 word/document。xml,这对您的文档来说是不正确的。
此修复程序将出现在 docx4j 6.1.0 中(并且会在每晚发布的版本中更快)。
当我使用在线版 Office365 创建 .docx 时,我的程序在调用 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 的文档。
现已固定为 https://github.com/plutext/docx4j/commit/b877520c0a02804f00b2fce57d56405f045947f0
那部分代码假设 word/document。xml,这对您的文档来说是不正确的。
此修复程序将出现在 docx4j 6.1.0 中(并且会在每晚发布的版本中更快)。