使用Jacob对Excel进行PDF转换,现将最近遇到的问题及相关内容整理出来,毕竟网上查资料也反复了好几次,有些报错虽然解决了,但是没能及时记录下来,仅记录下近期的一些报错信息。供参考。
一、Jacob的运行环境配置要点
1)注意Jacob的版本与部署的JDK版本需要能匹配;
2)运行环境下需要安装office及其插件saveaspdfandxps,否则转换过程中会报错;
3)每个版本Jacob的jar包(如何确定jar对应的Jacob版本?详见下文第三部分内容),都会有对应的两个dll文件,即jacob-1.XX- x86.dll及jacob-1.XX- x64.dll,分别对应的不同的win系统,根据运行环境不同取对应位数的dll放置于对应位置;
4)dll文件及jar包放置位置
1. dll文件需放置在如下位置:
a. C:\Windows\System32
b. D:\Program Files\Java\jdk1.7.0_80\bin
c. D:\Program Files\Java\jdk1.7.0_80\jre\bin
d. 发布包的工程名下\WEB-INF\lib\
2. jacob.jar
a. 删除发布包的 工程名下\WEB-INF\lib\jacob.jar
b. 把jacob放到 weblogic安装路径下的:D:\Weblogic12c\user_projects\domains\base_domain\lib
二、期间遇到的一些错误的原因分析
1) com.jacob.com.ComFailException: Can't get object clsid from progid
安装下office
2)com.jacob.com.ComFailException: Invoke of: ExportAsFixedFormat
安装下插件saveaspdfandxps
3)com.jacob.com.ComFailException: A COM exception has been encountered
可参考https://www.jianshu.com/p/d9f74ea14463
三、其他
1)如何确定jar对应的Jacob版本?
用解压软件打开jar包能看到META-INF目录下有个JacobVersion.properties文件,打开可看到如下版本信息。
#Fri Feb 01 08:14:43 EST 2008
version=1.14
build.date=01-February-2008 08\:14\:42
build.iteration=10
2)Jacob与JDK的版本对应
目前使用结果,JDK1.6版本,Jacob1.14-1.18版本可用。