在项目中导入下面的jar包
Pom加入以下内容,引入本地 jacob.jar 包依赖
<dependency>
<groupId>com.jacob</groupId>
<artifactId>jacob</artifactId>
<version>1.19</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/resources/lib/jacob.jar</systemPath>
</dependency>
将以下文件,copy到自己jdk安装目录的bin目录下
核心代码
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class JacobUtil {
//word 转 HTML
public static int DOC_SAVE_TYPE_HTML = 10;
//doc 转 docx
public static int DOC_SAVE_TYPE_DOCX = 12;
/**
* doc转为docx
* @param docPath word文件路径
* @param outPath 输出文件路径
*/
public static void wordConvertDocx(String docPath,String outPath) {
wordConvert(docPath, outPath, JacobUtil.DOC_SAVE_TYPE_DOCX);
}
/**
* docx转为html
* @param docPath word文件路径
* @param outPath 输出文件路径
*/
public static void wordConvertHtml(String docPath,String outPath){
wordConvert(docPath,outPath,JacobUtil.DOC_SAVE_TYPE_HTML);
}
/**
* word转换为文件
* @param docPath word路径
* @param outFileName html文件路径
* @param docSaveType 另存为的文件类型,
*/
public static void wordConvert(String docPath,String outFileName ,int docSaveType) {
ActiveXComponent app = new ActiveXComponent("Word.Application");
try {
Dispatch documents = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.call(documents, "Open", docPath, false, true).toDispatch();
Dispatch selection = Dispatch.get(app, "Selection").toDispatch();
Dispatch option = Dispatch.get(doc, "WebOptions").toDispatch();
// 设置编码 65001 or utf-8
Dispatch.put(option, "Encoding", 65001);
Dispatch.invoke(doc, "SaveAs", Dispatch.Method,
new Object[]{outFileName, new Variant(docSaveType)}, new int[1]);
Dispatch.call(doc, "Close", new Variant(0));
System.out.println("文件[" + docPath + "]转换完成");
doc = null;
} catch (Exception e) {
e.printStackTrace();
}finally {
Dispatch.call(app, "Quit");
app = null;
}
}
}
调用测试
以下文件路径需要替换成自己真实的路径
public void test(){
JacobUtil.wordConvertHtml("D:\\123456.docx","D:\\123456.html");
}
注:以上jar 和 dll 文件自行百度,或者私信我。看到后 回发。