我遇到的需求是 浏览器预览word。
因为浏览器并不能预览doc 因此 在不装乱起八糟的东西的情况下 我选择用poi
docx 转 pdf
使用poi4.1.2 + fr.opensagres.poi.xwpf.converter.pdf-gae2.0.2
这里注意,我在这里踩了个大坑
由于poi在easyexcel里面也有用到 因此 如果有自己引入poi 或者使用easyexcel 要把 fr.opensagres.poi.xwpf.converter.pdf-gae2.0.2里面 poi-ooxml给去除
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId>
<version>2.0.2</version>
<exclusions>
<exclusion>
<artifactId>org.apache.poi</artifactId>
<groupId>poi-ooxml</groupId>
</exclusion>
</exclusions>
</dependency>
代码和网上的一样。
兼容doc
doc的话 就粗暴点了 用spire.doc.free这个 虽然只有500段。
但是预览不够看的话 就自然会自己下载下来了。
spire.doc.free官网已经有demo了,所以就自己去看官网就好了。
遇到的问题
org/apache/poi/POIXMLDocumentPart 找不到这个类的解决:
我是修改fr.opensagres.xdocreport的版本 原来的版本是2.0.1 和 poi 4.1.2冲突了 要么回退poi 要么升级xdocreport 我选择升级xdocreport 如果选择回退poi 就到3.17或3.10
NoClassDefFoundError: com/lowagie/text/ExceptionConverter
IncompatibleClassChangeError: Found interface org.apache.poi.util.POILogger, but class was expected
这个我猜测是 有两个不同版本的poi-ooxml导致的 解决看开头xdocreport的导入maven
总结
这两个的效果其实都不好,但是在不下软件和忽略操作系统环境下 我能找到最好的办法了。
如果你有更好的办法,请评论。