同时支持doc和docx,话不多说,直接上代码
项目依赖 pom.xml

<dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.14</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.14</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.14</version>
</dependency>
<dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>org.apache.poi.xwpf.converter.xhtml</artifactId><version>1.0.6</version>
</dependency>
<dependency><groupId>net.sf.jtidy</groupId><artifactId>jtidy</artifactId><version>r938</version>
</dependency>

正式代码是

package com.zbj.spring.boot.util;import lombok.Cleanup;
import org.apache.commons.lang.StringUtils;
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.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
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.IOException;
import java.io.OutputStreamWriter;/*** WordToHtml** @author weigang* @create 2017-10-13**/
public class WordToHtml {public static void main(String[] args) {
//      String sourceFileName = "D:/test/员工劳动合同.docx";String sourceFileName = "D:/test/员工劳动合同.doc";try {convertWordToHtml(sourceFileName);} catch (IOException e) {e.printStackTrace();} catch (ParserConfigurationException e) {e.printStackTrace();} catch (TransformerException e) {e.printStackTrace();}}public static void convertWordToHtml(String path) throws IOException, ParserConfigurationException, TransformerException {String htmlPath = "D:/test/index.html";String imagePath = "D:/test/image/";if (StringUtils.isBlank(path)) {return;}if (path.endsWith("docx")) { // 2007 及以后XWPFDocument document = new XWPFDocument(new FileInputStream(path));XHTMLOptions options = XHTMLOptions.create();options.setExtractor(new FileImageExtractor(new File(imagePath)));options.URIResolver(new BasicURIResolver("image"));@Cleanup OutputStreamWriter streamWriter = new OutputStreamWriter(new FileOutputStream(htmlPath));XHTMLConverter xhtmlConverter = (XHTMLConverter) XHTMLConverter.getInstance();xhtmlConverter.convert(document, streamWriter, options);} else { // 2003 之前HWPFDocument wordDocument = new HWPFDocument(new FileInputStream(path));Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(document);// 保存图片,并返回图片的相对路径wordToHtmlConverter.setPicturesManager((content, pictureType, name, width, height) -> {File imageFile = new File(imagePath);if(!imageFile.exists()){imageFile.mkdirs();}try (FileOutputStream out = new FileOutputStream(imagePath + 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(htmlPath));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);}}
}

对于word文件,在网上随便下载个合同或者文件即可

word转HTML 基本版相关推荐

  1. 用200行C语言代码写出一个贪吃蛇——1.0(基本版)

    1.设计思路 总的来说,贪吃蛇这个小游戏涉及到的东西不多,但是对逻辑思维是比较吃基本功的. 贪吃蛇,显示给我们看的有三部分:蛇.食物.地图边界. 我们可以用一个二维数组来标记这些部分: 例如这里我创建 ...

  2. 微软office认证课程

    感谢阅读 非原创声明,根据微软课程学习理解而已 Get started with Microsoft 365 Work Smarter with Microsoft Word 与 Microsoft ...

  3. 盘点国内外25款备具代表性的协同办公软件

    声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载. 作者:欧开磊 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群 ...

  4. 最大开源代码sourceforge 简介 及视音频方面常用的开源代码

    所有的音视频凯源代码在这里:http://sourceforge.net/directory/audio-video/os:windows/,你可以下载分析,视频不懂请发邮件给我,帮你分析. 0.视频 ...

  5. docker适合初学者吗_简化了Docker:面向绝对初学者的动手指南

    docker适合初学者吗 by Shahzan 由Shahzan Whether you are planning to start your career in DevOps, or you are ...

  6. linux磁盘分区什么意思,linux 磁盘分区详解

    <linux 磁盘分区详解>由会员分享,可在线阅读,更多相关<linux 磁盘分区详解(31页珍藏版)>请在人人文库网上搜索. 1.系统引导过程和硬盘分区结构讨论作者:章节来源 ...

  7. 关于TeX,LaTeX,MikTex,CTeX,etc.

    下文是王垠介绍的TeX--一个专业的排版系统! 这是一个介绍 TeX - 一个漂亮,有趣又可靠的排版程序的网页.希望通过我的介绍,你能体会到使用 TeX 的快乐感觉. 这页分成了很多小主题,可以叫做一 ...

  8. 办公软件-Excel:Excel百科

    ylbtech-办公软件-Excel:Excel百科 Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件.直观的 ...

  9. IBM SPSS Statistics Subscription新版本发布

    IBM SPSS Statistics是世界领先的统计分析软件,至今已经有40多年的发展历程,广泛地应用于各个行业的分析领域,它的专业性及易用性,深受使用者的喜爱,在统计分析领域一直处于领导者地位. ...

  10. Microsoft Office 2007

    Microsoft Office 2007 2007 Microsoft Office System,或稱作Microsoft Office 2007,是微軟公司針對Windows Vista作業系統 ...

最新文章

  1. wp实例开发精品文章源码推荐
  2. internal heap limit reached问题的解决
  3. nssl1318-地铁重组【dp】
  4. commonJS — DOM操作(for DOM)
  5. ftp 速度_如何评价我的骑行功率(FTP)?
  6. 惨痛教训,事实证明ACER 4710无法使用双芯片的内置蓝牙
  7. python第二天 列表、元组
  8. java字符串_Java字符串
  9. NYOJ--31 5个数求最值
  10. asp mysql性能_asp和mysql分页代码
  11. Windows环境下edge浏览器点击下载没有反应
  12. ios看html文件乱码,iOS webView 打开 TXT/PDF 文件乱码的问题
  13. wordpress php教程 pdf,wordpress
  14. 外贸收汇方式你都真的清楚了吗?外贸B2B收款结汇方法详解!
  15. 卷积码编码和BCJR译码
  16. AI测试与传统测试不同,需要考虑十个要点--新梦想软件测试
  17. 机器学习里的贝叶斯基本理论、模型和算法
  18. 物理竞赛应该怎么准备?3个步骤教你敲响名牌大学门!
  19. Tomcat项目启动后,页面无法显示验证码
  20. 微信小程序基础篇-模板与配置

热门文章

  1. 如何在通达信软件上随意画图_怎样在通达信软件中加入写字画箭头的涂画工具?...
  2. 江苏省计算机二级高级office知识点,江苏省计算机二级考试(江苏省二级office题库)...
  3. iPhone手机屏幕突然变暗该怎么办?
  4. 金刚狼java,金刚狼3 【4K原盘】2017.2160p.BluRay.HEVC.TrueHD.7.1.Atmos-TERMiNAL 47GB
  5. PostgreSQL的JDBC驱动---jdbc的链接数据库
  6. 2021:Python的下载安装教程(很详细,初学者也能懂)
  7. Python tan函数图像绘制,不带有极值的线条
  8. 关于在Ubuntu安装JLink驱动的最简便方法
  9. 『原创经典』标准日本语初级笔记完整版(1)
  10. 飞思卡尔单片机编程与c语言,飞思卡尔单片机C语言编程(中文).pdf