`
jzhua2006
  • 浏览: 300354 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Jacob使用小结

阅读更多
Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。Jacob下载的地址为:

http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368

配置:

(1)将解压包中的jacob.dll(x86常用,x64)拷到jdk安装目录下的jre\bin文件夹或windows安装路径下的WINDOWS\system32文件夹下

(2)将jacob.jar文件拷到classpath下即可

实例1:

public class wordtohtml
{
// -------------------------------------------------
// 方法原型: change(String paths)
// 功能描述: 将指定目录下面所有的doc文件转化为HTML并存储在相同目录下
// 输入参数: String
// 输出参数: 无
// 返 回 值: 无
// 其它说明: 递归
// --------------------------------------------
public static void change(String paths, String savepaths)
{
File d = new File(paths);
// 取得当前文件夹下所有文件和目录的列表
File lists[] = d.listFiles();
String pathss = new String("");
// 对当前目录下面所有文件进行检索
for (int i = 0; i < lists.length; i++)
{
if (lists[i].isFile())
{
String filename = lists[i].getName();
String filetype = new String("");
// 取得文件类型
filetype = filename.substring((filename.length() - 3), filename.length());
// 判断是否为doc文件
if (filetype.equals("doc"))
{
// 打印当前目录路径
System.out.println(paths);
// 打印doc文件名
System.out.println(filename.substring(0, (filename.length() - 4)));
ActiveXComponent app = new ActiveXComponent("Word.Application");
// 启动word
String docpath = paths + filename;
String htmlpath = savepaths
+ filename.substring(0, (filename.length() - 4));
String inFile = docpath;
// 要转换的word文件
String tpFile = htmlpath;
// HTML文件
boolean flag = false;
try
{
app.setProperty("Visible", new Variant(false));
// 设置word不可见
Object docs = app.getProperty("Documents").toDispatch();
// Object doc = Dispatch.invoke(docs,"Open",
// Dispatch.Method, new Object[]{inFile,new
// Variant(false), new Variant(true)}, new
// int[1]).toDispatch();
Object doc = Dispatch.invoke((Dispatch) docs, "Open", Dispatch.Method,
new Object[] { inFile }, new int[1]).toDispatch();
// 打开word文件
Dispatch.invoke((Dispatch) doc, "SaveAs", Dispatch.Method,
new Object[] { tpFile, new Variant(8) }, new int[1]);
// 作为html格式保存到临时文件
Variant f = new Variant(false);
Dispatch.invoke((Dispatch) doc, "Close", Dispatch.Method,
new Object[] { new Variant(false) }, new int[1]);
flag = true;
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
app.invoke("Quit", new Variant[] {});
}
System.out.println("转化完毕!");
}
}
else
{
pathss = paths;
// 进入下一级目录
pathss = pathss + lists[i].getName() + "\\";
// 递归遍历所有目录
change(pathss, savepaths);
}
}
}

// ---------------------------------------------------------
// 方法原型: main(String[] args)
// 功能描述: main文件
// 输入参数: 无
// 输出参数: 无
// 返 回 值: 无
// 其它说明: 无
// ----------------------------------------------------------
public static void main(String[] args)
{
String paths = new String("c:\\wordtohtml\\");
String savepaths = new String("c:\\wordtohtml\\");
change(paths, savepaths);
}
}

实例2

问题1:由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正
解决方法:重新下载Jacob的jar及dll文件(最好版本比现在的低,如1.11)解决

问题2:com.jacob.com.ComFailException: Can't get object clsid from progid
解决方法:代码中存在空格,删掉就可以了
分享到:
评论
2 楼 Heart-wu 2012-12-17  
com.jacob.com.ComFailException: Can't get object clsid from progid 一直报这个错,网上也找了些方法,注册表之类的还是出问题。你说代码中存在空格?难道是这个原因?请问是哪里的空格,谢谢。
1 楼 gtt 2010-06-21  
请教一下楼主,我在xp环境下,是可以正常运行的,但是在server 2003 环境下就报com.jacob.com.ComFailException: Can't get object clsid from progid 问题,楼主有啥好的建议吗

相关推荐

    jacob的使用方法总结

    包括jacob的常见word使用方法,很全面,很详细

    一次jacob操作word的总结

    一次使用jacob在服务器端操作word文档的总结

    jacob操作word小结

    使用jacob操作word,包括根据摸版生成word,将word转换成html文件,以合并word文件

    jacob调用OCX控件总结

    介绍通过Java调用OCX控件几种方法,同时介绍调用控件时出现com.jacob.com.ComFailException 8000FFFF 错误的解决方法,历时两周,终于在微软文档中找到灵感,绝对原创,不过为连贯考虑,还是加上了一些网友提供的...

    jacob操作实例+lib

    最近在做java中操作word,找了很久终于总结出使用jacob操作word、ppt、execl生成html的方法,以及使用java程序修改word内容的方法。所有方法都经测试成功才放到上面的。

    jacob的入门及案例

    jacob技术的介绍及详细总结,详细介绍了他的原理

    office 编程 jacob 页面 标签 可编辑区域 表格 (所有内容)

    office 编程 jacob 页面 标签 可编辑区域 表格 (所有内容)本人总结的,包含所有word中基本操作的内容,如上所述,还有对未知内容的探测及其代码转换。

    java调用com组件操作word使用总结

    java调用com组件操作word使用总结(jacob)

    jacob word的基本操作

    里面包含了自己对word的基本操作的总结。

    bootstrap实现登录页面

    Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap...

    bootstrap中文手册

    本手册总结了bootstrap官网上的基本知识,实在为bootstrap离线资源中的精华,关注bootstrap的童鞋赶紧下载吧!!! Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark Otto和Jacob...

    研究论文-基于J2EE的毕业设计管理系统的设计与实现.pdf

    介绍了系统的主要功能模块和各功能间的逻辑关系,研究了系统实现所需要的数据库连接池优化、Session对象存储用户信息、基于Jacob中COM组件调用等关键技术,并总结了系统的特点.本系统设计并实现了毕业设计(论文)...

    Hibernate三大类查询总结.doc

    Hibernate目前总共分为三大类查询:cretiria,hql,本地sql 详细介绍着三种方式的区别和用法

    基于J2EE的毕业设计管理系统的设计与实现 (2010年)

    介绍了系统的主要功能模块和各功能间的逻辑关系,研究了系统实现所需要的数据库连接池优化、Session对象存储用户信息、基于Jacob中COM组件调用等关键技术,并总结了系统的特点。本系统设计并实现了毕业设计(论文)工作...

    Bootstrap零基础入门教程(三)

    Bootstrap 是由 Twitter 的 Mark Otto 和 Jacob Thornton 开发的。Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品。 写到这里,这篇从零开始学Bootstrap(3)我想写以下几个内容: 1. 基于我对Bootstrap的...

    第504节和学校心理学

    JACOB-TIMM 和 TIMOTHY S。 HARTSHORNE 中密歇根大学法院案件、民权执法活动办公室和教育部政策声明表明对 1973 年康复法案第 504 条的新解释。第 504 条与学校心理实践最相关的部分摘要提供。 特别注意 504 与...

    cmpinf0010-final-project:最终项目

    雅各布·科普柯(Jacob Kopco), Ben Hrehocik, Sam Grammer, 数据集 该数据集包括整个匹兹堡市的各种艺术品的名称,位置和类型。 此数据集的名称,位置和年份为跨匹兹堡的桥梁而建。 本的数据集 描述 抽象的...

    网上购物系统之图书超市实验报告及源码

    网上购物系统之图书超市,包括实验报告及源码,以及数据库脚本。 用JSP及MySQL编写,运行成功。页面部分未做太多修饰。全部功能已经实现。

    JAVAWeb基本学习问题

    自己总结的,提供给大家学习而已,希望有所帮助,希望喜欢

Global site tag (gtag.js) - Google Analytics