关于java使用jacob调用word,ppt,excel等的转化为html的问题

转载 2015年07月07日 10:08:51
使用jacob时,把dll放到window/system32下就成,不需要注册 
1、如果出现下面的错误 
   com.jacob.com.ComFailException: A COM exception has been encountered: 
   At Invoke of: Version 
   Description: An unknown COM error has occured. 
   表示dll的版本不对,换成最新版本即可。 
2、如果出现下面的错误 
   no jacob in java.library.path 
   java.lang.UnsatisfiedLinkError: no jacob in java.library.path 
   表示把dll放到path下即可,设置path或是放到window/system32下

import com.jacob.activeX.ActiveXComponent;  
import com.jacob.com.*; 

public class OfficeToHtml {
  
    private final static OfficeToHtml oOfficeToHtml = new OfficeToHtml();  
  
    public static OfficeToHtml getInstance() {  
        return oOfficeToHtml;  
    }  
  
    public OfficeToHtml() {  
    }  
  
    public boolean WordtoHtml(String s, String s1) {  
        ComThread.InitSTA();  
        ActiveXComponent activexcomponent = new ActiveXComponent(  
                "Word.Application");  
        String s2 = s;  
        String s3 = s1;  
        boolean flag = false;  
        try {  
            activexcomponent.setProperty("Visible", new Variant(false));  
            Dispatch dispatch = activexcomponent.getProperty("Documents").toDispatch();  
            Dispatch dispatch1 = Dispatch.invoke(dispatch, "Open", 1,  
                    new Object[] { s2, new Variant(false), new Variant(true) },  
                    new int[1]).toDispatch();  
            Dispatch.invoke(dispatch1, "SaveAs", 1, new Object[] { s3,  
                    new Variant(8) }, new int[1]);  
            Variant variant = new Variant(false);  
            Dispatch.call(dispatch1, "Close", variant);  
            flag = true;  
        } catch (Exception exception) {  
            exception.printStackTrace();  
        } finally {  
            activexcomponent.invoke("Quit", new Variant[0]);  
            ComThread.Release();  
            ComThread.quitMainSTA();  
        }  
        return flag;  
    }  
  
    public boolean PPttoHtml(String s, String s1) {  
        ComThread.InitSTA();  
        ActiveXComponent activexcomponent = new ActiveXComponent(  
                "PowerPoint.Application");  
        String s2 = s;  
        String s3 = s1;  
        boolean flag = false;  
        try {  
            Dispatch dispatch = activexcomponent.getProperty("Presentations")  
                    .toDispatch();  
            Dispatch dispatch1 = Dispatch.call(dispatch, "Open", s2,  
                    new Variant(-1), new Variant(-1), new Variant(0))  
                    .toDispatch();  
            Dispatch.call(dispatch1, "SaveAs", s3, new Variant(12));  
            Variant variant = new Variant(-1);  
            Dispatch.call(dispatch1, "Close");  
            flag = true;  
        } catch (Exception exception) {  
            System.out.println("|||" + exception.toString());  
        } finally {  
            activexcomponent.invoke("Quit", new Variant[0]);  
            ComThread.Release();  
            ComThread.quitMainSTA();  
        }  
        return flag;  
    }  
  
    public boolean ExceltoHtml(String s, String s1) {  
         ComThread.InitSTA();  
         ActiveXComponent activexcomponent = new ActiveXComponent("Excel.Application");  
         String s2 = s;  
         String s3 = s1;  
         boolean flag = false;  
         try  
         {  
         activexcomponent.setProperty("Visible", new Variant(false));  
         Dispatch dispatch =  
         activexcomponent.getProperty("Workbooks").toDispatch();  
         Dispatch dispatch1 = Dispatch.invoke(dispatch, "Open", 1, new  
         Object[] {  
         s2, new Variant(false), new Variant(true)  
         }, new int[1]).toDispatch();  
         Dispatch.call(dispatch1, "SaveAs", s3, new Variant(44));  
         Variant variant = new Variant(false);  
         Dispatch.call(dispatch1, "Close", variant);  
         flag = true;  
         }  
         catch(Exception exception)  
         {  
         System.out.println("|||" + exception.toString());  
         }  
         finally  
         {  
         activexcomponent.invoke("Quit", new Variant[0]);  
         ComThread.Release();  
         ComThread.quitMainSTA();  
         }  
         return flag;  
    }  
  
    public static void main(String args[]) {  
     OfficeToHtml otx = OfficeToHtml.getInstance();  
        boolean flag3 = otx.ExceltoHtml("e:/test/test1.xlsx", "e:/test/test1.html");  
        if(flag3){  
            System.out.println("EXCEL文件转换成HTML成功!");  
        }else{  
            System.out.println("EXCEL文件转换成HTML失败!");  
        }  
        boolean flag2 = otx.WordtoHtml("e:/test/test2.docx", "e:/test/test2.html");  
        if(flag2){  
            System.out.println("WORD文件转换成HTML成功!");  
        }else{  
            System.out.println("WORD文件转换成HTML失败!");  
        }  
        boolean flag1 = otx.PPttoHtml("e:/test/test4.ppt", "e:/test/test4.html");  
        if(flag1){  
            System.out.println("PPT文件转换成HTML成功!");  
        }else{  
            System.out.println("PPT文件转换成HTML失败!");  
        }  
    }  
}  

Java 使用 jacob 将微软office中 word excel ppt 转成pdf

在使用jacb前,我们需要去下载 jacob.jar 和 jacob-1.18-x64.dll 其次,我们需要将jacob-1.18-x64.dll放入到jdk的bin目录下菜可以使用 第三,使用ja...
  • jesionsly
  • jesionsly
  • 2016年06月21日 16:17
  • 2426

使用jacob调用Windows的com对象,转换Office文件为pdf、html等

1、介绍     Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对C...
  • catoop
  • catoop
  • 2015年01月26日 12:14
  • 9588

Java 使用jacob ppt文件转pptx,doc转docx;word 转html、pdf等

Java 使用jacob ppt文件转pptx,doc转docx
  • gang5688700
  • gang5688700
  • 2016年05月19日 16:08
  • 1695

[JAVA]: Jacob 转换Word,Excel为HTML

一、了解Jacob 项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下: 一、了解Jacob 先了解一下概念,JACOB 就是 JAVA-COM Brid...
  • hwj528
  • hwj528
  • 2016年10月16日 21:57
  • 177

使用Jacob实现html和word的相互转换

package zmx.jacob.test; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; i...
  • zmx729618
  • zmx729618
  • 2016年11月21日 16:19
  • 2910

Jacob实现Excel转html

JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,也是通过JNI功能访问windows平台下的com组件或者win32系统库的。...
  • weisong530624687
  • weisong530624687
  • 2014年05月08日 14:20
  • 4420

jacob Word转html 解决图片无法显示

查资料网上有很多jian
  • agezhc
  • agezhc
  • 2014年08月19日 17:36
  • 2339

使用java将 WORD,EXCEL转化为HTML

一、了解Jacob 先了解一下概念,JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,也是通过JNI功能访问windows平台下的com组件或者win32系统...
  • jianhua0902
  • jianhua0902
  • 2015年02月12日 14:29
  • 675

jacob 另存word ,excel 为html,xml格式

import java.util.Random; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComTh...
  • builderwfy
  • builderwfy
  • 2017年10月30日 10:07
  • 214

Java使用Jacob转换Word为HTML 中文乱码

做项目时遇到要把word文档显示在网页上,因为只有一个显示的小功能,所以就没有用pageoffice,而是选用了jacob把word文档转为html格式,直接嵌套在jsp页面上,但是遇到一个问题,就是...
  • YING_SHANG
  • YING_SHANG
  • 2016年08月22日 12:54
  • 2007
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于java使用jacob调用word,ppt,excel等的转化为html的问题
举报原因:
原因补充:

(最多只允许输入30个字)