咖啡伴侣

呆在上海
posts - 163, comments - 156, trackbacks - 0, articles - 2

Java Word转html

Posted on 2008-03-28 10:08 oathleo 阅读(5917) 评论(7)  编辑  收藏 所属分类: Java
jacob是java和windows下的com桥,通过它我们可以在java程序中调用COM组件。如果你的JDK是1.4,那你需要下载jacob1.9的jni库才能正常运行,早期版本在JDK1.4下有些问题。

package com;
/**
* 〈p〉Title:Word文档转html类〈/p〉
* 〈p〉Description: 〈/p〉
* 〈p〉Copyright:() 2002〈/p〉
* @author 舵手
* @version 1.0
*/
import com.jacob.com.*;
import com.jacob.activeX.*;

public class WordtoHtml {
/**
*文档转换函数
*@param docfile word文档的绝对路径加文件名(包含扩展名)
*@param htmlfile 转换后的html文件绝对路径和文件名(不含扩展名)
*/
public static void change(String docfile, String htmlfile) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try {
app.setProperty("Visible", new Variant(false));
//设置word不可见
Object docs = app.getProperty("Documents").toDispatch();
Object doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { docfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch();
// 打开word文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(8) }, new int[1]);
// 作为html格式保存到临时文件
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[]{});
}
}
public static void main(String[] strs){
WordtoHtml.change("c:\\a\\运输管理调度系统总体方案.doc", "c:\\a\\t");

}
}

Feedback

# re: Java Word转html  回复  更多评论   

2008-03-28 10:27 by like
支持!

# re: Java Word转html  回复  更多评论   

2008-03-28 16:09 by 草包书生
good

# re: Java Word转html  回复  更多评论   

2008-03-29 18:50 by Always BaNg.
不过这种方式一般都行不通,Java需要跨平台,绑定Com就绑定Windows了,比较可行的方法就是OpenOffice转换。

# re: Java Word转html  回复  更多评论   

2008-03-30 12:55 by 观点不一样
人家本身就是window平台下的东西为什么需要用openOffice转换呢,技术是为应用服务的!

# re: Java Word转html  回复  更多评论   

2008-03-31 12:00 by 舵手
我的原创好像也没这么高的点击率:)

# re: Java Word转html  回复  更多评论   

2009-07-31 13:10 by caishu1986
有没有html转pdf

# re: Java Word转html  回复  更多评论   

2012-05-30 17:35 by shark
我试了,为什么报错:The method call(Dispatch, String, Object) in the type Dispatch is not applicable for the arguments (Object,
String, Variant),包名可以是test吗?自己设的@舵手

只有注册用户登录后才能发表评论。


网站导航: