问题现象:使用jacob将word/excel转换为pdf时,服务器重启后,必须重新登录下桌面,才可转换pdf 成功,否则转换的pdf文件直接是0KB。
1、确保所用电脑的office本身可以将word/excel文件另存为pdf文件。
————不可以时,需要安装“SaveAsPDFandXPS_world转pdf插件.exe”插件。
插件名:SaveAsPDFandXPS.exe
2、确保服务器上的如下目录放置了相应的dll文件或jar包。
————C:\Program Files\Java\jdk1.7.0_21\bin下放了jacob-1.18-x64.dll文件。
————C:\Program Files\Java\jre7\bin 下放了jacob-1.18-x64.dll文件。
————C:\Windows\System32 下放了jacob-1.18-x64.dll文件。
————\tomcat01\webapps\ROOT\WEB-INF\lib 各自项目的该目录下放了 jacob-1.18.jar。
————注意:这里的jacob-1.18-x64.dll是64位的dll。
————注意:问题参照:https://bbs.csdn.net/wap/topics/390932919
3、dll文件分为64位的和32位的,office也区分32位和64位,权限设置问题【至今没搞懂32、64到底区别在哪里了】。
————命令窗口输入
mmc comexp.msc 【组件配置】 或 dcomcnfg
或 mmc comexp.msc -32【上面命令执行后没找到相应组件时,可以试试该命令】
————进行如下的DCOM配置:
百度解决方法大多如下,结果不行————电脑重启后,还需要登录桌面,才可以将word/excel转化为pdf,否则生成0KB的pdf。
4、尝试后可用的解决方法:
如上图所示,选择下列用户,选择administrator用户,填写其密码后确定即可。
缺点:
这种“下列用户”方式设置后,本机上打开excel打不开了,报如下错误:【将这里设置为“交互式用户”、“启用用户”方式时本机打开excel正常】
5、注意:
选择“启动用户”方式,也可行【该方式本机excel打开方式正常,excel/doc转pdf也正常,服务器重启后,excel/doc转pdf也正常】。