使用jacob錯誤 java.lang.IllegalArgumentException: Can't pass in null Dispatch object


調用jacob打印word時,有以下錯誤
java.lang.IllegalArgumentException: Can't pass in null Dispatch object
        at com.jacob.com.Dispatch.throwIfUnattachedDispatch(Dispatch.java:283)
        at com.jacob.com.Dispatch.callN(Dispatch.java:452)
        at com.xquant.platform.component.web.trade.documentprinthandler.service.
CallPrinter.printWord(CallPrinter.java:59) 
這個問題查了很久  本地是可以的 但是將代碼放到測試服務器上時一直有這個錯誤
后來發現是打印機的名字沒有對上

 

另外整理了使用jacob環境的一些配置

jacob-1.18-x86.dll 、jacob-1.18-x64.dll

文件放在 %Java_Home%jre/bin 與  %Java_Home%/bin  目錄下

以下為打印失敗  則追加:

jacob-1.18-x64.dll放到C:\Windows\System32下面(64)

jacob-1.18-x86.dll 放到C:\Windows\SysWOW64下面(32位)

檢查以下步驟

 

 

還有個別win7的電腦需要設置一下,如下:在運行窗口輸入dcomcnfg,打開組件服務窗口。選擇[組件服務]-[計算機]-[我的電腦]-[DCOM配置]-[Microsoft Office Word97-2003文檔],右鍵[屬性],選中[標識],將啟動用戶改成交互式用戶。點擊確定即可。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM