全网整合营销服务商

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

免费咨询热线: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#如何在一个XML文件中查找并替换文本内容  如何快速搭建FTP站点实现文件共享?  如何在局域网内绑定自建网站域名?  制作表格网站有哪些,线上表格怎么弄?  如何安全更换建站之星模板并保留数据?  如何选择适配移动端的WAP自助建站平台?  如何用虚拟主机快速搭建网站?详细步骤解析  如何用景安虚拟主机手机版绑定域名建站?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  韩国服务器如何优化跨境访问实现高效连接?  北京网站制作网页,网站升级改版需要多久?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何在IIS管理器中快速创建并配置网站?  如何在云虚拟主机上快速搭建个人网站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  常州企业建站如何选择最佳模板?  定制建站价位费用解析与套餐推荐全攻略  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  linux top下的 minerd 木马清除方法  建站之星好吗?新手能否轻松上手建站?  在线教育网站制作平台,山西立德教育官网?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何零成本快速生成个人自助网站?    油猴 教程,油猴搜脚本为什么会网页无法显示?  ,有什么在线背英语单词效率比较高的网站?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  建站之星官网登录失败?如何快速解决?  网站制作公司排行榜,抖音怎样做个人官方网站  开源网站制作软件,开源网站什么意思?  ,网站推广常用方法?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  兔展官网 在线制作,怎样制作微信请帖?  如何在宝塔面板中创建新站点?  模具网站制作流程,如何找模具客户?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  网站制作软件有哪些,制图软件有哪些?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  红河网站制作公司,红河事业单位身份证如何上传?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  如何高效完成独享虚拟主机建站?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  网站制作需要会哪些技术,建立一个网站要花费多少?  如何在IIS中新建站点并配置端口与物理路径? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。