(java)word转html并提取word中的目录结构树生成到html页面中的左边树
目录
概述
1.将word转为html
MAVEN配置
具体java代码实现
2.提取word中的目录结构并生成html中的树目录
调用方式
概述
最近接了一个项目,其中有一个需求将word转html,并将word中的目录结构树提取出来放到html的左侧并生成相应的树目录。经研究要实现该需求可以分为两步:
1.将word转为html
2.提取word中目录结构树并生成html中的树目录
1.将word转为html
网上有很多将word转为html的方案,这里不作详细说明,大致分为使用word自带的转html的api(也就是使用jacob)和POI进行转换。简单的对比了一下使用jacob转换的html的效果比POI好,使用POI时有一些特殊的表格、公式等不能正常显示。具体使用jacob将word转为html的步骤如下:
MAVEN配置
<dependency>
<groupId>jacob</groupId>
<artifactId>jacob</artifactId>
<version>1.19</version>
</dependency>
具体java代码实现
public static int DOC_SAVE_TYPE_HTML = 10;
public static int DOC_SAVE_TYPE_DOCX = 12;
/**
* doc转为docx
* @param docPath
* @param docxPath
*/
public static void wordConvertDocx(String docPath,String docxPath){
wordConvert(docPath,docxPath,JacobUtil.DOC_SAVE_TYPE_DOCX);
}
/**
* docx转为html
* @param docPath
* @param docxPath
*/
public static void wordConvertHtml(String docPath,String docxPath){
wordConvert(docPath,docxPath,JacobUtil.DOC_SAVE_TYPE_HTML);
}
/**
* word转换为文件
* @param docPath word路径
* @param newFileName html文件路径
* @param docSaveType 另存为的文件类型,
*/
public static void wordConvert(String docPath,String newFileName,int docSaveType) {
try {
app = getWordInstance();
Dispatch documents = app.getProperty("Documents").toDispatch();
// 打开要转换的word文件
Dispatch doc = Dispatch.call(documents, "Open", docPath, false, true)
.toDispatch();
Dispatch selection = Dispatch.get(app, "Selection").toDispatch();
// 设置编码 65001----utf-8
Dispatch option = Dispatch.get(doc, "WebOptions").toDispatch();
Dispatch.put(option, "Encoding", 65001);
Dispatch.invoke(doc, "SaveAs", Dispatch.Method,
new Object[]{newFileName, new Variant(docSaveType)}, new int[1]);
Dispatch.call(doc, "Close", new Variant(0));
System.out.println("文件【" + docPath + "】转换完成");
//没有调用Quit命令
doc = null;
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭WINWORD.exe进程
Dispatch.call(app, "Quit");
app = null;
}
}
2.提取word中的目录结构并生成html中的树目录
可使用 poi提取word中的目录结构,在提取poi提取word的目录结构时先从网上找了一些资料,有一些word能提取,但是有一些word文档不能提取。经过一周时间的研究的反复终于完成,做了一个demo放到外网。生成的结果如下图:
转换后的html如下图,显示2级目录:
http://112.74.115.22:9000/downFile?url=http://***************/test.docx&titleLevel=2
显示1级目录:
http://112.74.115.22:9000/downFile?url=http://***************/test.docx&titleLevel=1
调用方式
http://112.74.115.22:9000/downFile后加两个参数:
url:外网可以下载的word文件url
titleLevel:要目录结构级别,默认值为3级
原文作者:脚穿草鞋
原文地址: https://blog.csdn.net/today__/article/details/107901405
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/today__/article/details/107901405
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
相关文章