用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 工程的构建路径。
![](http://blog.csdn.net/zhuizhu_xingfu/article/details/file:/C:/Documents%20and%20Settings/huihui/Application%20Data/Tencent/Users/770937247/QQ/WinTemp/RichOle/6~9(X7$U[2DZ78Y}W{K2_FH.jpg)
(2)需要把 DLL 文件添加到系统的 PATH 环境变量中,或者也可以在程序中设置运行时的 PATH 变量。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/3dfe451d54afb3ecf38d692fe8525e4e.gif)
一个简单的“桥”已经搭起来了,现在就可以轻松的调用您熟悉的 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的转换。
JACOB 开源项目提供的是一个 JVM 独立的自动化服务器实现,其核心是基于 JNI 技术实现的 Variant, Dispatch 等接口,设计参考了 Microsoft VJ++ 内置的通用自动化服务器,但是 Microsoft 的实现仅仅支持自身的 JVM。通过 JACOB,可以方便地在 Java 语言中进行晚期绑定方式的调用。
下面用jacob实现word到html的转化。
1·配置开发和运行环境。
首先,使用 JACOB 来“搭桥”,需要下载最新的 JACOB 相关类库,包括 Jacob.jar 和 Jacob.dll。
(1)将 jar 文件添加到您的 Eclipse 工程的构建路径。
![](http://blog.csdn.net/zhuizhu_xingfu/article/details/file:/C:/Documents%20and%20Settings/huihui/Application%20Data/Tencent/Users/770937247/QQ/WinTemp/RichOle/6~9(X7$U[2DZ78Y}W{K2_FH.jpg)
(2)需要把 DLL 文件添加到系统的 PATH 环境变量中,或者也可以在程序中设置运行时的 PATH 变量。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/21/3dfe451d54afb3ecf38d692fe8525e4e.gif)
一个简单的“桥”已经搭起来了,现在就可以轻松的调用您熟悉的 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的转换。
相关文章推荐
- 使用Jacob实现Word转换Html
- 使用Jacob实现html和word的相互转换
- 利用POI将word转换成html实现在线阅读
- 利用POI将word转换成html实现在线阅读
- jacob 实现Office Word文件格式转换 docTotxt,docTopdf,docxTodoc,pdfTotxt ...
- java实现word到html的转换
- Java使用Jacob转换Word为HTML
- [JAVA]: Jacob 转换Word,Excel为HTML
- Asp.net2.0实现Word转换Html,同时分享系列笑话
- Asp.net2.0实现Word转换Html
- 利用POI将word转换成html实现在线阅读
- jacob读取word excel,转换成html
- Asp.net2.0实现Word转换Html,同时分享系列笑话
- jacob将word转换为html出现乱码的解决方案
- Java 使用jacob实现各类办公文档(ppt,Excel,word,text,imge)转换成PDF
- Java使用Jacob转换Word为HTML
- Jacob 将word和excel转换成html
- Java使用Jacob转换Word为HTML
- Java使用Jacob转换Word为HTML
- php实现将HTML页面转换成word并且保存的方法