论坛首页 Java企业应用论坛

利用jacob将word另存为html格式文件

浏览 5181 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-27  
由于任务要有从OA与网站数据交换这个需求,在OA中编辑的都是word文件,这些文件申核通过后就要发布到网站的相应栏目中,所以在将word文件另存为html格式的时候,找了许多现成的代码,现在整理一下,希望有类似功能的朋友可以支持拿去参考.我的环境是 Window2003,jdk1.6.0,Tomcat5.517.

        在写代码之前一定要有jacob.jar和jacob.dll这两个文件,和大多数介绍jacob的文章一样,这两个文件要分别下载的,jacob.dll是yahoo讨论组的,而jacob.jar是它的官方网站下载的.我用的版本是1.7;首先要把jacob.dll这个文件放到 jdk1.6.0\jre\bin下面,而不是放到system32这下,关于这点我试了很多次,困扰了我很久.jacob.jar直接放到项目的 web-inf\lib下就可以了.下面是代码
//**
     * 将指定路径的Word文件生成Html文件
     * 
     * @param filename
     *            word文件存放路径及文件名,可以是网络地址
     * @param savefilename
     *            生成后的html存放路径及文件名
     */
    public static void WordToHtml(String filename, String savefilename)
    {
        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[] { filename, new Variant(false), new Variant(true) }, new int[1]).toDispatch();
            // 打开word文件
            Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] ...{ savefilename, new Variant(8) }, new int[1]);
            // 作为html格式保存到临时文件
            Dispatch.call(doc, "Close", new Variant(false));
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            app.invoke("Quit", new Variant[] ...{});
            app = null;
        }
    }
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics