調用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)
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文檔],右鍵[屬性],選中[標識],將啟動用戶改成交互式用戶。點擊確定即可。

