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
解决方法:代码中存在空格,删掉就可以了
分享到:
相关推荐
《Jacob使用手册》 Jacob(Java COM Bridge)是一款强大的Java库,它允许Java应用程序与COM(Component Object Model)组件进行交互。在Windows环境下,许多功能丰富的应用程序和库都是基于COM技术构建的,如...
标题中的“关于jacob的使用解决方案1”指出的是在Java环境中使用Jacob库遇到的问题及其解决方法。Jacob是一个Java到COM桥接库,允许Java应用程序访问和操作COM组件,如Microsoft Office套件,以便进行文件格式转换等...
总结,解决com.jacob:1.19在Maven中的下载问题,主要是手动下载jar文件并配置为系统依赖,同时处理好DLL文件的路径。使用Jacob时,需注意线程安全和操作系统的兼容性。通过Jacob,Java开发者可以轻松地与各种Windows...
使用Jacob操作Word的第一步是创建一个`ActiveXComponent`对象,代表Word应用程序实例: ```java import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; ActiveXComponent wordApp = new ...
总结来说,Jacob是一个强大的工具,它使得Java开发者能够利用Windows平台丰富的COM组件资源,实现各种复杂的功能。结合OCR技术,可以进一步提升Java应用在文档处理、图像识别等领域的应用能力。然而,正确配置和使用...
通过理解`jacob-1.14.3.dll`的作用,以及如何正确配置和使用Jacob库,开发者可以轻松地在Java项目中集成Office文档处理、PDF生成等功能,提高工作效率。在实际开发中,一定要根据具体需求选择合适的dll版本,并确保...
本篇文章将详细讲解如何使用Jacob来合并Word文档,并探讨相关知识点。 首先,确保安装和配置Jacob库。Jacob是一个Java到COM桥接库,它允许Java程序调用COM对象,如Microsoft Word。在使用Jacob前,你需要下载Jacob...
4. **安装与配置**:使用Jacob时,需要将对应的DLL文件(根据你的系统架构选择x64或x86版本)添加到系统的PATH环境变量中,同时将Jacob的Java库(jacob.jar)添加到项目的类路径中。 5. **示例代码**: ```java ...
总结一下,Java通过Jacob调用SAPI实现合成语音是一种在Windows环境下集成语音功能的有效途径。开发者需要了解Jacob库的使用、SAPI接口以及如何在Java中与COM组件交互。通过这样的方式,你可以创建出能够自然地读出...
在这个场景中,"Java操作DDL使用jacob"指的是利用Jacob库来实现这一功能。Jacob是Java和COM(Component Object Model)之间的桥梁,它允许Java程序调用Windows API和COM组件,包括处理数据库操作的一些接口。 ...
总结,"jacob乱码原因解释"涉及到的关键知识点包括:文件编码理解,Java I/O操作,Jacob API的正确使用,Office文档元数据处理,字符集兼容性,以及潜在的兼容性问题。理解和解决这些问题对于顺利进行Office到HTML的...
**Jacob.jar及使用方法(1.17)** Jacob(Java COM Bridge)是一个Java库,它允许Java应用程序与Microsoft COM组件进行交互。这个库通过JNI(Java Native Interface)技术实现,使得开发者能够在Java环境中调用COM...
总结,jacob-1.19作为Java与Windows交互的重要工具,为开发者提供了丰富的功能。通过理解其核心原理,正确配置和使用,我们可以更高效地实现各种系统级别的操作,提升Java应用的扩展性和灵活性。同时,需要注意与...
《Jacob库详解:1.14.3-x86版本的使用与原理》 Jacob库,全称为Java COM Bridge,是Java与COM组件之间通信的一个重要桥梁。它为Java开发者提供了一个接口,使得在Java程序中能够调用Windows平台上的COM组件变得可能...
在使用JACOB之前,需要将jacob-x.x.x.dll文件添加到系统路径或者项目类路径下,因为这是JACOB运行所必需的动态链接库。在JACOB 1.17 M2版本中,这个文件应该包含在压缩包内。对于Windows用户,确保该dll文件与JVM...
5. **配置环境**:使用Jacob前,除了在项目中添加`jacob.jar`到类路径外,还需要在系统环境变量`PATH`中添加Jacob的dll文件路径,或者在Java代码中使用`System.loadLibrary()`方法指定dll文件的位置。 6. **文件...
- **jacob-1.16.1**:此版本可能针对1.16版进行了一些优化和错误修正,版本号后缀1表示这是一个小更新。 - **jacob-1.17**和**jacob-1.18**:继续改进和扩展了框架,提高了性能和兼容性。 - **jacob-1.19**和**...
总结来说,"使用jacob转pdf资料"这个主题涵盖了一个使用Java编程实现Office文档到PDF转换的解决方案,它依赖于jacob库,通过调用Office或WPS的COM接口实现。这个技术在不依赖第三方转换工具的情况下,提供了在服务器...
总结来说,“jacob-1.20jar 官方最新版”是用于Java与COM组件交互的库,特别适合处理文件格式转换,如从Word到PDF。使用这个库可以极大地扩展Java应用程序的功能,特别是在需要与Windows原生API或Office应用程序协同...