您的位置:首页 > Web前端 > HTML

用jacob实现word到html的转换

2011-11-18 12:43 399 查看
软件的互操作性是一个我们经常面临的问题,如果 Java 可以自由的调用其他语言和平台的成熟代码,可以充分利用您的 Java 技能,大大提高您的生产力。现有的 Java COM 互操作技术有很多种实现,JACOB 开源项目提供了一个简单方便的通用调用框架。

JACOB 开源项目提供的是一个 JVM 独立的自动化服务器实现,其核心是基于 JNI 技术实现的 Variant, Dispatch 等接口,设计参考了 Microsoft VJ++ 内置的通用自动化服务器,但是 Microsoft 的实现仅仅支持自身的 JVM。通过 JACOB,可以方便地在 Java 语言中进行晚期绑定方式的调用。

下面用jacob实现word到html的转化。

1·配置开发和运行环境。

首先,使用 JACOB 来“搭桥”,需要下载最新的 JACOB 相关类库,包括 Jacob.jar 和 Jacob.dll。

(1)将 jar 文件添加到您的 Eclipse 工程的构建路径。



(2)需要把 DLL 文件添加到系统的 PATH 环境变量中,或者也可以在程序中设置运行时的 PATH 变量。



一个简单的“桥”已经搭起来了,现在就可以轻松的调用您熟悉的 COM 类库了。需要在操作系统中注册 COM 组件,可以使用 Redemption 工具包本身提供的安装程序,也可以采用 Windows 系统自带的 REGSVR32 工具来注册 DLL 文件。

java代码如下:

package test;

import java.io.File;

import com.jacob.activeX.ActiveXComponent;

import com.jacob.com.Dispatch;

import com.jacob.com.Variant;

public class WordToHtml {

public boolean changeFormat (String FileName){

String FileFormat = FileName.substring(FileName.length()-4,FileName.length());

System.out.println("文件后缀"+FileFormat);

if(FileFormat.equalsIgnoreCase(".doc")){

String DocFile = FileName;

System.out.println("word文件路径:"+DocFile);

//word文件的完整路径

String HtmlFile = DocFile.substring(0, (DocFile.length() - 4)) + ".htm";

System.out.println("htm文件路径:"+HtmlFile);

//html文件的完整路径

ActiveXComponent app = new ActiveXComponent("Word.Application");

//启动word

try

{

app.setProperty("Visible", new Variant(false));

//设置word程序非可视化运行

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();

//打开word文件

Dispatch.invoke(doc,"SaveAs",Dispatch.Method, new Object[]{HtmlFile,new Variant(8)}, new int[1]);

//作为htm格式保存文件

Dispatch.call(doc, "Close",new Variant(false));

//关闭文件

}

catch (Exception e){

e.printStackTrace();

}

finally {

app.invoke("Quit", new Variant[] {});

//退出word程序

}

//转化完毕

return true;

}

else{

return false;

}

}

public static void main(String[] args ) {

WordToHtml d = new WordToHtml();

File f=new File("c:\\a.doc");

System.out.println(f.getAbsolutePath());

System.out.println(d.changeFormat( f.getAbsolutePath()));

}

这样就完成了从word到html的转换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: