在使用java将office转成pdf时,为了保证效果,一般会使用jacob插件,jacob插件调用的时候需要配置jacob环境
1 windows服务器
2 安装word或者wps
3 将jacob的jar包安装到依赖环境中,在将对应的dll文件拷到项目所依赖的jre/bin下,如果此处找不到在将dll文件,就讲dll文件拷贝到iwndows的system32下
此时在使用插件调用对应的程序就好了
在开发的时候在tomcat下使用正常,但是在was上跑的时候就出现了异常,开始没发调试,后来测试找到了真正的bug,就是VariantChangeType failed,此处需要eclipse的远程调试,跟踪was上的错误,一般的可以通过was的日志看出来。
出现此错误的原因是:com对像的交互类型又问题
解决方法:
Windows Vista/2008改变了COM对象默认的交互方式为“非交互”型的。Console启动本身支持应用交互,但service模式下就不行了。所以需要修改word DCOM默认的标识,改为“交互式用户”模式,即可正常调用了。
按照以下步骤修改后再测service模式下试转Word即可成功:
1) 运行命令: mmc comexp.msc -32
2) 找到:组件服务>计算机>我的电脑>DCOM组件>Microsoft Word 97-2003 文档;
3) 右键点击,选择属性,修改标识为“交互式用户”,点击“确定”;