用jacob实现word到html的转换

          软件的互操作性是一个我们经常面临的问题,如果 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的转换。
 
 
 
 
 
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值