全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java使用poi将word转换为html

使用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小时内与您取得联系。