問題現象:使用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、總結:
問題最少的解決方式是,直接選擇“下列用戶”,輸入賬戶密碼,這樣不管服務器是否重啓了,都不需要遠程鏈接桌面,也不再生成0kb的pdf了,缺點是服務器上excel使用報錯。注意:這裏不可選擇“啓動用戶”,否則轉pdf失敗。