使用某些版本的 Office 10 打开由 docx4j 保存的文件时出错

Posted

技术标签:

【中文标题】使用某些版本的 Office 10 打开由 docx4j 保存的文件时出错【英文标题】:Error while openning of saved by docx4j files with some version of Office 10 【发布时间】:2016-01-27 14:06:00 【问题描述】:

我使用以下单元测试创​​建了文档

@Test
public void testConvert() throws Docx4JException 


WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
wordMLPackage.getMainDocumentPart().addParagraphOfText("hello");            
// Now save it 
wordMLPackage.save(new java.io.File("/home/user/DocX/sample.docx") );

但是在使用某些版本的 Microsoft Office 10 家庭和企业版(版本 14.0.6112.5000)打开此文件时出现错误(文件已损坏)。同时,它也可以与最新版本的 Microsoft Office 10、Open Office、Office365 和 Liber Office 配合使用。

有没有办法解决这个问题,以便能够使用任何版本的 Office 10 打开文档。 谢谢

【问题讨论】:

【参考方案1】:

可能你的问题是 docx4j.properties 属性:docx4j.AppVersion

docx4j.AppVersion=3.3
# of the form XX.YYYY where X and Y repre**strong text**sent numerical values
# WARNING: -SNAPSHOT will cause Word 2010 x64 to treat the docx as corrupt!

确保值为 3.2 或 3.3,而不是说 3.2.1

或设置 docx4j.App.write=false

【讨论】:

感谢 docx4j.AppVersion=3.3 的帮助

以上是关于使用某些版本的 Office 10 打开由 docx4j 保存的文件时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Libre Office 中打开文件并将其保存为 .doc 文件?

为啥Excel无法打开二进制数据?

WPS Office手机版调用接口代码指导帖之一(Android)

Linux的office保存doc时出现中文乱码?

打开 Office 用于 doc、docx 和 rtf 到 html 的转换

Mac OS和Office版本问题