最近有个需求将word文档转换成PDF。我是通过OpenOffice+JodConverter进行转换的,但是转换后发现word文档中的批注还存在,通过查阅相关资料,找到了解决方案,参考的文章链接:
https://blog.csdn.net/china_huimark/article/details/76637645
使用的jodconverter版本是:
<dependency>
<groupId>org.artofsolving.jodconverter</groupId>
<artifactId>jodconverter-core</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/jodconverter-core-3.0-beta-4.jar</systemPath>
</dependency>
下载地址: https://pan.baidu.com/s/1JEt5RMu8lTxEU_tsIInffQ#list/path=%2F
提取码:0fxn
下载jodconverter-core-3.0-beta-4.jar后,修改jar包的源码。
如何修改可以参考这个链接:
https://blog.csdn.net/coycleipenghui/article/details/52998957
主要修改的类是org.artofsolving.jodconverter.AbstractConversionTask,修改execute(OfficeContext context)方法,在this.modifyDocument(document);下面添加以下代码:
XTextDocument mxDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, document);
XPropertySet xPropertySet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, mxDoc);
xPropertySet.setPropertyValue("RedlineDisplayType", RedlineDisplayType.NONE);
最后生成class文件,替换jodconverter-core-3.0-beta-4.jar包里的class,再次转换的时候就可以获取到word文档的最新版本了。
这里替换class文件,我是先将jar包解压,将修改后的class文件替换后,再重新进行打包。
解压命令:jar -xvf xxx.jar
打包命令:jar -cfM0 xxx.jar *