使用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)
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文档],右键[属性],选中[标识],将启动用户改成交互式用户。点击确定即可。