这几天研究jacob原本的需求是将word显示到FCK中,于是就想到用jacob去做。它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库。它可运行在x86和支持32位和64位Java虚拟机 X64的环境。
首先下载Jacob包,JDK1.5以上需要使用Jacob1.9版本(JDK1.6尚未测试)
1、将压缩包解压后,Jacob.jar添加到Libraries中;
2、将Jacob.dll放至“WINDOWS\SYSTEM32”下面。
需要注意的是:
【使用IDE启动Web服务器时,系统读取不到Jacob.dll,例如用MyEclipse启动Tomcat,就需要将dll文件copy到MyEclipse安装目录的“jre\bin”下面。
一般系统没有加载到Jacob.dll文件时,报错信息为:“java.lang.UnsatisfiedLinkError: no jacob in java.library.path”】
下面是代码:
package com.gra.util;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class JacobUtil {
public static final int WORD_HTML = 8;
public static final int WORD_TXT = 7;
public static final int EXCEL_HTML = 44;
/**
* WORD转HTML
*
* @param docfile
* WORD文件全路径
* @param htmlfile
* 转换后HTML存放路径
*/
public void wordToHtml(String docfile, String htmlfile) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try {
// 设置word不可见
app.setProperty("Visible", new Variant(false));
//获得documents对象
Dispatch docs = (Dispatch) app.getProperty("Documents")
.toDispatch();
//打开文件
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { docfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
//保存新的文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
htmlfile, new Variant(WORD_HTML) }, new int[1]);
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
}
}
}
测试代码:
public class JunitTest {
@Test
public void test2() {
JacobUtil ju = new JacobUtil();
String docfile = "D:\\2012.doc";
String htmlfile = "D:\\2012.html";
ju.wordToHtml(docfile, htmlfile);
}
}
注: 附件为jacob的API
分享到:
相关推荐
完整的转换代码,myeclipse下的工程文件
word转换成html程序及所需jacob架包
以jacob将上传的word文件解析成html显示给客户端
1.将jacob.jar导入到项目的lib中去 2.将Jacob.dll放至“WINDOWS\SYSTEM32”下面(或者放在对应的jdk目录下 如:C:\Program ...附:可以通过System.out.println(System.getProperty("java.library.path"))查出jdk的信息
使用jacob操作word,包括根据摸版生成word,将word转换成html文件,以合并word文件
网上的一些java读取word文件写的不是很详细(不知道是我自己的水平不行?) 这里用jacob将word文档转换成html 并且是按原格式显示 真的很实用
使用jacob操作word实例,将word转换成HTML在网页上显示
把jacob.jar加载到工程里。 在C:\WINDOWS\system32;C:\Program Files\Java\jdk1.5.0_04\bin;C:\Program Files\Java\jdk1.5.0_04\jre\bin;下添加jacob.dll文件。 OfficeToXML.java文件是实现代码。 我自己工程用到...
java通过jacob将将word,ppt,excel转换成html(支持03,07,带有转换例子)
完整项目包括所有jar包,完美支持html转word,并解决图片断网不能访问的问题。调用HtmlToWord类测试即可,注意修改调用文件的路径,因里面用到jacob,需要将jacob.dll拷贝到项目所在jre\bin目录下面
可以将word转成htm格式 样式跟word一样,图片加载都没有问题
jacob转换office文件成html文件出现乱码原因解释
他可以被转换成任何的类 如: 使用toDispatch();可以将Variant转化成Dispatch对象 ) com jacob com中还有其他的一些类不是建立在JacobObject之上的 如com jacob com ComThread(负责COM线程管理 ) ...
使用Jacob可以操作Word、excel、PPT等文件转换成pdf或转换成HTML
里面数据类型的转换的方法 Variant类本身是JACOB的最最基本的数据类 他可以被转换成任何的类 如: 使用toDispatch();可以将Variant转化成Dispatch对象 ) com jacob com中还有其他的一些类不是建立在...
能够便捷的把word文档转化为html页面显示的内容
支持word、excel、ppt、wps、txt等多种格式转pdf、并支持pdf转word。个人感觉非常好用。
Jacob是Java和Windows下的Com桥,通过它我们可以在Java程序中调用COM组件。如果你的JDK是1.4,那你需要下载Jacob1.9的jni库才能正常运行,早期版本在JDK1.4下有些问题。
我用这个,仅仅只是想要把iText保存出来的rtf转换成doc而已。最终结果是,iText创建*.rtf -> jacob转换 -> POI读取*.word。 目前没有找到一个单独类就能完美支持“创建/读取/转换”的方法,另有xml的方法,因为过于...