下载依赖的jar包,将包添加到工程目录下的resources/lib/中
链接: https://pan.baidu.com/s/15kwoT2eeTGVjNcvZRdccpw?pwd=rcg1
提取码: rcg1
在pom.xml添加依赖
<!--添加本地的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>
java文件
/**
* 根据格式类型转换doc文件
*
* @param srcPath doc path 源文件
* @param descPath the docx path 目标文件
* @param fmt fmt 所转格式
* @return the file
* @throws Exception the exception
*/
public File convertDocFmt(String srcPath, String descPath, int fmt) throws Exception {
long start = System.currentTimeMillis();
fmt=12;
// 实例化ComThread线程与ActiveXComponent
ComThread.InitSTA();
ActiveXComponent app = new ActiveXComponent("Word.Application");
try {
// 文档隐藏时进行应用操作
app.setProperty("Visible", new Variant(false));
app.setProperty("DisplayAlerts", new Variant(false));
// 实例化模板Document对象
Dispatch document = app.getProperty("Documents").toDispatch();
// 打开Document进行另存为操作
Dispatch doc = Dispatch.invoke(document, "Open", Dispatch.Method,
new Object[]{srcPath, new Variant(true), new Variant(true)}, new int[1]).toDispatch();
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{descPath, new Variant(fmt)}, new int[1]);
Dispatch.call(doc, "Close", new Variant(false));
return new File(descPath);
} catch (Exception e){
throw e;
} finally {
long end = System.currentTimeMillis();
System.out.println("转换完成,用时:"+ (end - start) +"ms");
// 释放线程与ActiveXComponent
app.invoke("Quit", new Variant[]{});
ComThread.Release();
}
}
如果要转换成其他格式,只需要修改代码中的fmt值就可以,对应值如下。
格式大全:前缀对应以下方法的fmt值
0:Microsoft Word 97 - 2003 文档 (.doc)
1:Microsoft Word 97 - 2003 模板 (.dot)
2:文本文档 (.txt)
3:文本文档 (.txt)
4:文本文档 (.txt)
5:文本文档 (.txt)
6:RTF 格式 (.rtf)
7:文本文档 (.txt)
8:HTML 文档 (.htm)(带文件夹)
9:MHTML 文档 (.mht)(单文件)
10:MHTML 文档 (.mht)(单文件)
11:XML 文档 (.xml)
12:Microsoft Word 文档 (.docx)
13:Microsoft Word 启用宏的文档 (.docm)
14:Microsoft Word 模板 (.dotx)
15:Microsoft Word 启用宏的模板 (.dotm)
16:Microsoft Word 文档 (.docx)
17:PDF 文件 (.pdf)
18:XPS 文档 (.xps)
19:XML 文档 (.xml)
20:XML 文档 (.xml)
21:XML 文档 (.xml)
22:XML 文档 (.xml)
23:OpenDocument 文本 (.odt)
24:WTF 文件 (.wtf)