Java使用poi将word转换为html
发布时间 - 2026-01-10 22:14:03 点击率:次使用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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
JS去除重复并统计数量的实现方法
魔方云NAT建站如何实现端口转发?
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
如何做网站制作流程,*游戏网站怎么搭建?
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel如何自定义分页视图?(Pagination示例)
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
网页设计与网站制作内容,怎样注册网站?
java ZXing生成二维码及条码实例分享
如何用PHP快速搭建高效网站?分步指南
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
香港服务器选型指南:免备案配置与高效建站方案解析
如何用JavaScript实现文本编辑器_光标和选区怎么处理
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Laravel如何使用Vite进行前端资源打包?(配置示例)
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
如何快速生成ASP一键建站模板并优化安全性?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
黑客如何通过漏洞一步步攻陷网站服务器?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
zabbix利用python脚本发送报警邮件的方法
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
利用 Google AI 进行 YouTube 视频 SEO 描述优化
如何基于PHP生成高效IDC网络公司建站源码?
如何快速辨别茅台真假?关键步骤解析
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
香港服务器租用每月最低只需15元?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
香港服务器部署网站为何提示未备案?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
PHP 500报错的快速解决方法
如何在阿里云部署织梦网站?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
微信小程序 canvas开发实例及注意事项
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
如何在云指建站中生成FTP站点?

