使用poi将word转换为html,支持doc,docx,转换后可以保持图片、样式。

1.导入Maven包
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>xdocreport</artifactId> <version>1.0.6</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> <version>1.3</version> </dependency>
2.转换代码
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.xwpf.converter.core.BasicURIResolver;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
public class Test {
// doc转换为html
void docToHtml() throws Exception {
String sourceFileName = "C:\\doc\\test.doc";
String targetFileName = "C:\\html\\test.html";
String imagePathStr = "C:\\html\\image\\";
HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(sourceFileName));
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document);
// 保存图片,并返回图片的相对路径
wordToHtmlConverter.setPicturesManager((content, pictureType, name, width, height) -> {
try(FileOutputStream out = new FileOutputStream(imagePathStr + name)){
out.write(content);
} catch (Exception e) {
e.printStackTrace();
}
return "image/" + name;
});
wordToHtmlConverter.processDocument(wordDocument);
Document htmlDocument = wordToHtmlConverter.getDocument();
DOMSource domSource = new DOMSource(htmlDocument);
StreamResult streamResult = new StreamResult(new File(targetFileName));
TransformerFactory tf = TransformerFactory.newInstance();
Transformer serializer = tf.newTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty(OutputKeys.METHOD, "html");
serializer.transform(domSource, streamResult);
}
// docx转换为html
public void docxToHtml() throws Exception {
String sourceFileName = "D:\\ac\\00.docx";
String targetFileName = "D:\\ac\\test.html";
String imagePathStr = "D:\\ac\\image\\";
OutputStreamWriter outputStreamWriter = null;
try {
XWPFDocument document = new XWPFDocument(new FileInputStream(sourceFileName));
XHTMLOptions options = XHTMLOptions.create();
// 存放图片的文件夹
options.setExtractor(new FileImageExtractor(new File(imagePathStr)));
// html中图片的路径
options.URIResolver(new BasicURIResolver("image"));
outputStreamWriter = new OutputStreamWriter(new FileOutputStream(targetFileName), "utf-8");
XHTMLConverter xhtmlConverter = (XHTMLConverter) XHTMLConverter.getInstance();
xhtmlConverter.convert(document, outputStreamWriter, options);
} finally {
if (outputStreamWriter != null) {
outputStreamWriter.close();
}
}
}
演示地址: https://www.xiaoyun.studio/app/preview.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# poi将word转换为html
# java
# word转换为html
# Java使用poi-tl1.9.1生成Word文档的技巧分享
# java 使用POI合并两个word文档
# java实现在线预览--poi实现word、excel、ppt转html的方法
# java poi设置生成的word的图片为上下型环绕以及其位置的实现
# 利用Java Apache POI 生成Word文档示例代码
# java Apache poi 对word doc文件进行读写操作
# Java中使用Apache POI读取word文件简单示例
# java使用poi读取ppt文件和poi读取excel、word示例
# java通过poi解析word入门的操作方法
# 转换为
# 大家多多
# XHTMLOptions
# FileImageExtractor
# XHTMLConverter
# usermodel
# dom
# w3c
# XWPFDocument
# BasicURIResolver
# HWPFDocument
# hwpf
# import
# converter
# core
# xwpf
# WordToHtmlConverter
# stream
# DOMSource
# TransformerFactory
相关文章:
免费视频制作网站,更新又快又好的免费电影网站?
微信小程序 五星评分(包括半颗星评分)实例代码
C#如何在一个XML文件中查找并替换文本内容
如何快速搭建FTP站点实现文件共享?
如何在局域网内绑定自建网站域名?
制作表格网站有哪些,线上表格怎么弄?
如何安全更换建站之星模板并保留数据?
如何选择适配移动端的WAP自助建站平台?
如何用虚拟主机快速搭建网站?详细步骤解析
如何用景安虚拟主机手机版绑定域名建站?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
韩国服务器如何优化跨境访问实现高效连接?
北京网站制作网页,网站升级改版需要多久?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
如何在IIS管理器中快速创建并配置网站?
如何在云虚拟主机上快速搭建个人网站?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
常州企业建站如何选择最佳模板?
定制建站价位费用解析与套餐推荐全攻略
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
linux top下的 minerd 木马清除方法
建站之星好吗?新手能否轻松上手建站?
在线教育网站制作平台,山西立德教育官网?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何零成本快速生成个人自助网站?
油猴 教程,油猴搜脚本为什么会网页无法显示?
,有什么在线背英语单词效率比较高的网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
建站之星官网登录失败?如何快速解决?
网站制作公司排行榜,抖音怎样做个人官方网站
开源网站制作软件,开源网站什么意思?
,网站推广常用方法?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
兔展官网 在线制作,怎样制作微信请帖?
如何在宝塔面板中创建新站点?
模具网站制作流程,如何找模具客户?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
网站制作软件有哪些,制图软件有哪些?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
红河网站制作公司,红河事业单位身份证如何上传?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何高效完成独享虚拟主机建站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
网站制作需要会哪些技术,建立一个网站要花费多少?
如何在IIS中新建站点并配置端口与物理路径?
*请认真填写需求信息,我们会在24小时内与您取得联系。