使用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++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
如何有效防御Web建站篡改攻击?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
金*站制作公司有哪些,金华教育集团官网?
详解jQuery停止动画——stop()方法的使用
大连 网站制作,大连天途有线官网?
西安专业网站制作公司有哪些,陕西省建行官方网站?
建站之星备案是否影响网站上线时间?
建站之星安装需要哪些步骤及注意事项?
宝塔面板创建网站无法访问?如何快速排查修复?
建站之星各版本价格是多少?
南平网站制作公司,2025年南平市事业单位报名时间?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
建站OpenVZ教程与优化策略:配置指南与性能提升
零基础网站服务器架设实战:轻量应用与域名解析配置指南
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
Python多线程使用规范_线程安全解析【教程】
如何选择高性价比服务器搭建个人网站?
如何快速查询网址的建站时间与历史轨迹?
如何快速搭建个人网站并优化SEO?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
建站之星如何保障用户数据免受黑客入侵?
网站代码制作软件有哪些,如何生成自己网站的代码?
如何通过建站之星自助学习解决操作问题?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何选择高效稳定的ISP建站解决方案?
如何选择香港主机高效搭建外贸独立站?
建站主机CVM配置优化、SEO策略与性能提升指南
如何在云主机上快速搭建多站点网站?
建站之星下载版如何获取与安装?
C#怎么创建控制台应用 C# Console App项目创建方法
香港服务器租用每月最低只需15元?
如何通过NAT技术实现内网高效建站?
C++中引用和指针有什么区别?(代码说明)
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
创业网站制作流程,创业网站可靠吗?
高性价比服务器租赁——企业级配置与24小时运维服务
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何高效搭建专业期货交易平台网站?
深入理解Android中的xmlns:tools属性
如何注册花生壳免费域名并搭建个人网站?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
*请认真填写需求信息,我们会在24小时内与您取得联系。