在已知的三种java中转Word为HTML的方式中,使用Jacob转换的格式最为准确
但是Jacob只能在Windows上使用
-
下载所需文件Jacob.zip
-
将文件中
jacob-1.19-x**.dll
文件放入jdk中。如:C:\Program Files\Java\jdk1.8.0_144\jre\bin
-
导入jacob.jar
-
代码
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class JacobUtil {
// 8 代表word保存成html
public static final int WORD_HTML = 8;
public static void main(String[] args) {
String docfile = "C:\\Users\\xxx\\Desktop\\aaa.docx";
String htmlfile = "C:\\Users\\xxx\\Desktop\\xxx.html";
JacobUtil.wordToHtml(docfile, htmlfile);
}
/**
* WORD转HTML
* @param docFile WORD文件全路径
* @param htmlFile 转换后HTML存放路径
*/
public static void wordToHtml(String docFile, String htmlFile){
// 启动word应用程序(Microsoft Office Word 2003)
ActiveXComponent app = new ActiveXComponent("Word.Application");
System.out.println("*****正在转换...*****");
try{
// 设置word应用程序不可见
app.setProperty("Visible", new Variant(false));
// documents表示word程序的所有文档窗口,(word是多文档应用程序)
Dispatch docs = app.getProperty("Documents").toDispatch();
// 打开要转换的word文件
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { docFile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
// 作为html格式保存到临时文件
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
htmlFile, new Variant(WORD_HTML) }, new int[1]);
// 关闭word文件
Dispatch.call(doc, "Close", new Variant(false));
}catch (Exception e){
e.printStackTrace();
}finally{
//关闭word应用程序
app.invoke("Quit", new Variant[] {});
}
System.out.println("*****转换完毕********");
}
}