Jacob的使用出错总结

转自:http://blog.163.com/wm_at163/blog/static/13217349020114166447941/

Jacob的使用方法:

1.在工程中导入 jacob.jar 这个包。
2.把 jacob.dll 拷贝到 jdk\bin或者C:\WINDOWS\system32目录下。
以上的两个文件您可以到网上http://danadler.com/jacob/ 下载的1.9的版本
jacob.jar 与 jacob.dll 版本一致。

3.注册ocx控件

l  先把***.ocx控件放入c:\windows\system32 文件夹下

l  在cmd命令行下,输入regsvr32  ***.ocx命令进行注册

异常解决:

1.java.lang.UnsatisfiedLinkError: no jacobin java.library.path

原因是:没有把 jacob.dll 拷贝到 jdk\bin或者C:\WINDOWS\system32目录下

2.Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid

原因是:regsvr32  ***.ocx命令进行注册后 ,获取的progid有误;

3.

Exception in thread "main"com.jacob.com.ComFailException: A COM exception has beenencountered:

At Invoke of: LoadFile

Description:灾难性故障

at com.jacob.com.Dispatch.invokev(Native Method)

at com.jacob.com.Dispatch.invokev(Dispatch.java:858)

at com.jacob.com.Dispatch.callN(Dispatch.java:455)

at com.jacob.com.Dispatch.call(Dispatch.java:544)

at com.lv.office.AIPToTest.jacob(AIPToTest.java:24)

at com.lv.office.AIPToTest.main(AIPToTest.java:14)

原因是:

在OCX控件中,重写COleControl.IsInvokeAllowed (DISPID)方法,即在控件的CMyNameCtrl中增加一个方法

BOOL CMyNameCtrl::IsInvokeAllowed (DISPID)

{

return TRUE;

}

用这个方法的理由是:

这个错误是由ActiveX结构设计造成的。

在Ole4.0版本之前,外部程序是可以直接调用OCX中方法的。Ole4.0之后,每次调用控件中的方法,系统会自动检查是否允许调用,即运行COleControl.IsInvokeAllowed (DISPID)

该方法检查控件是否正确的初始化或者是否通过持久存储接口正确加载,如果两个条件有一个满足,即返回TRUE,否则返回FALSE。

当控件在MFC中使用时,很多细节,如初始化,都被过滤了,这样,大多数用户都不会遇到这个问题。但是,当我们从C、C++的dll中调用控件时,不满足上述条件,该方法返回FALSE,这时候再调用任何控件方法,都会出现上述异常。

-------------------还有就是

At Invoke of: LoadFile(LoadFile可能是其他内容)

Description:灾难性故障(灾难性故障可能是乱码)

-----------------是你的jdk版本和jacob版本不一致的原因(个人看法)-

Jacob的使用出错总结相关推荐

  1. 关于jacob支持BSTR类型的经验总结

    作者:朱金灿 来源:http://blog.csdn.net/clever101 jacob是实现Java和COM之间互操作的一个开源中间件.网上大多的程序示例基本上是使用jacob调用微软的offi ...

  2. jacob 详解 语音_JAVA 实现Jacob语音播报

    准备工作:下载Jar 链接:https://pan.baidu.com/s/1edskJjYrCiefVJ7l3Ul9kQ     提取码:6dg9 ---导入jar 解压jar包,将jacob.ja ...

  3. 采用jacob实现word转pdf

    网络上已经有很多这方面的内容,在用之前也是参考了好多别人的文章,下面记录下我自己的整合过程.整个过程都比较简单: 开发环境:win8 64位系统,在2008下面部署也是一样的. 文档要求jdk的版本要 ...

  4. jacob操作excel、word、AutoCAD分享

    零.导读 这是使用jacob操作Word和Excel的教程,因为看不懂官方文档(英语不好,翻译太菜)所以选择去找找教程. jacob可以操作的 1.jacob 操作 cad相关资料 对象方法和操作,里 ...

  5. 用jacob为word表格设置边框线

    网上关于jacob如何操控word的例子已经有很多,但基本处理出来的表格,是没有边框线的. 在这里对此我做点补充,jacob版本是1.17 ActiveXComponent word = new Ac ...

  6. jacob java excel_使用 Jacob 操作Excel、Word文件

    Excel是常用的报表格式,一般系统中要求生成报表,多半都是使用Excel格式.在Java中操作Excel可以使用JavaExcel(jxl)或poi,大部分常用的功能都能实现,也很方便,但生成好的报 ...

  7. Java word转pdf 精确获取文件页数(jacob)

    注意: 该项目需在windows下进行, 如果需要商用需准备Windows服务器 这里我们用到的工具是jacob 需要创建一个maven项目添加以下依赖 <dependency><g ...

  8. Jacob 使用细节优化

    Jacob 可以用来做很多事,我这里主要用到了通过 office 转 pdf 的功能. 在使用过程中,偶尔会出现(1%的概率)进程异常,出现弹框等问题导致程序假死. 为了解决类似问题,在使用过程中,可 ...

  9. 使用JACOB操作word文档并实现打印

    由于项目需要,需要在后台对word文档中的书签进行重新填值,并进行打印.一开始已经使用Spire.Doc for Java实现了这个效果,但是这个插件是收费的,公司不想买,于是就在网上找了一段时间开源 ...

最新文章

  1. 面向全场景的鸿蒙操作系统能有多安全?
  2. etcd 启动分析_grpc-go基于etcd实现服务发现机制
  3. [云炬商业计划书阅读分享] 养生保健
  4. python学习高级篇(part3)--MRO
  5. 关于新的描述语言GEZEL的介绍
  6. 查询mysql各个库和表的大小并按大小输出
  7. WPF中查看PDF文件 - 基于开源的MoonPdfPanel (无需安装任何PDF阅读器)问题汇总
  8. case / switch语句的Python等价物是什么? [重复]
  9. 番茄todo电脑版_TODO清单|高效时间管理 支持多平台多设备同步 解锁VIP
  10. 0618----Shell(二)
  11. Kubernetes (K8s)安装部署过程(一)之证书安装
  12. docker之安装jdk8
  13. 乾隆的太医留下来的民间偏方
  14. 起用 RabbitMQ (二)
  15. db2数据库(db2数据库安装)
  16. git之删除仓库文件
  17. [JavaScript]如何将www.xxx.com变为com.xxx.www
  18. 武汉地铁站点最短路径搜索的实现(一)——Dijkstra算法(资料收集)
  19. Linux之网络设置
  20. 小程序另一种解析json

热门文章

  1. 阅读芯片手册及硬件原理图的方法
  2. 『文献回顾』“文本自动摘要” 相关文献综述
  3. 《士兵突击》- 激昂振奋人心的曲子
  4. Python 理解使用requests库爬取数据
  5. 小学自动组卷系统C语言,题库管理自动组卷系统设计-PB(源程序+论文+开题报告+答辩PPT)...
  6. JAVA一头母羊的寿命是5年_母羊生小羊,N年有多少羊问题
  7. spyder cv2 打开图片_谷歌百度以图搜图如何实现?教你打造属于自己的相似图片搜索引擎
  8. 压铸铝表面喷涂有气泡的解决方法
  9. xcode5 arc 开启和关闭
  10. Django 分页 (PageNumberPagination)