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

猜你喜欢

转载自www.cnblogs.com/zhangqb/p/10861084.html