Java实现将word转换为html的方法示例【doc与docx格式】

本文实例讲述了Java实现将word转换为html的方法。分享给大家供大家参考,具体如下:

 public static void main(String[] args) throws Exception {
 String filePath = "C:/Users/Administrator/Desktop/92个诊疗方案及临床路径/";
 File file = new File(filePath);
 File[] files = file.listFiles();
 String name = null;
 for (File file2 : files) {
  Thread.sleep(500);
  name = file2.getName().substring(0, file2.getName().lastIndexOf("."));
  System.out.println(file2.getName());
  if (file2.getName().endsWith(".docx") || file2.getName().endsWith(".DOCX")) {
  CaseHtm.docx(filePath ,file2.getName(),name +".htm");
  }else{
  CaseHtm.dox(filePath ,file2.getName(),name +".htm");
  }

    }
 }
 /**
 * 转换docx
 * @param filePath
 * @param fileName
 * @param htmlName
 * @throws Exception
 */
 public static void docx(String filePath ,String fileName,String htmlName) throws Exception{
 final String file = filePath + fileName;
 File f = new File(file);
 // ) 加载word文档生成 XWPFDocument对象
 InputStream in = new FileInputStream(f);
 XWPFDocument document = new XWPFDocument(in);
 // ) 解析 XHTML配置 (这里设置IURIResolver来设置图片存放的目录)
 File imageFolderFile = new File(filePath);
 XHTMLOptions options = XHTMLOptions.create().URIResolver(new FileURIResolver(imageFolderFile));
 options.setExtractor(new FileImageExtractor(imageFolderFile));
 options.setIgnoreStylesIfUnused(false);
 options.setFragment(true);
 // ) 将 XWPFDocument转换成XHTML
 OutputStream out = new FileOutputStream(new File(filePath + htmlName));
 XHTMLConverter.getInstance().convert(document, out, options);
 }
 /**
 * 转换doc
 * @param filePath
 * @param fileName
 * @param htmlName
 * @throws Exception
 */
 public static void dox(String filePath ,String fileName,String htmlName) throws Exception{
    final String file = filePath + fileName;
    InputStream input = new FileInputStream(new File(file));
    HWPFDocument wordDocument = new HWPFDocument(input);
    WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
    //解析word文档
    wordToHtmlConverter.processDocument(wordDocument);
    Document htmlDocument = wordToHtmlConverter.getDocument();
    File htmlFile = new File(filePath + htmlName);
    OutputStream outStream = new FileOutputStream(htmlFile);
    DOMSource domSource = new DOMSource(htmlDocument);
    StreamResult streamResult = new StreamResult(outStream);
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer serializer = factory.newTransformer();
    serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
    serializer.setOutputProperty(OutputKeys.INDENT, "yes");
    serializer.setOutputProperty(OutputKeys.METHOD, "html");
    serializer.transform(domSource, streamResult);
    outStream.close();
  }
<dependency>
  <groupId>fr.opensagres.xdocreport</groupId>
  <artifactId>fr.opensagres.xdocreport.document</artifactId>
  <version>1.0.5</version>
</dependency>
<dependency>
  <groupId>fr.opensagres.xdocreport</groupId>
  <artifactId>org.apache.poi.xwpf.converter.xhtml</artifactId>
  <version>1.0.5</version>
</dependency>
  <dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>3.12</version>
</dependency>
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-scratchpad</artifactId>
  <version>3.12</version>
</dependency>

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • 实例讲解Java读取一般文本文件和word文档的方法

    一般文本文件 我们以日志文件.log文件为例: import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class File_Test { /** * @param args */ pub

  • java简单操作word实例

    本文为大家分享了java简单操作word例子,供大家参考,具体内容如下 package apache.poi; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; impor

  • java导出生成word的简单方法

    最近做的项目,需要将一些信息导出到word中.在网上找了好多解决方案,现在将这几天的总结分享一下. 目前来看,java导出word大致有6种解决方案: 1.Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用.DLL动态链接库的生成需要windows平台的支持.该方案只能在windows平台实现,是其局限性. 2.Apache POI包括一系列的API,它

  • java实现word文件转html文件

    最近在项目开发中用户提出要在电脑上没有装office时在浏览器中打开word文件,最后确定的逻辑:用户选择想要查看的文件,页面js判断文件是否为word.不是执行下载,是后端根据word文件后缀访问对应转换方法.文件已存在对应html文件直接返回html文件地址,不存在先生成对应html文件再返回地址.js直接通过open()打开新的页签,展示word文件内容.新人一枚,如果代码中存在错误或有更好的实现万望指正! 相关jar包 代码 import java.io.ByteArrayOutputS

  • java使用POI实现html和word相互转换

    项目后端使用了springboot,maven,前端使用了ckeditor富文本编辑器.目前从html转换的word为doc格式,而图片处理支持的是docx格式,所以需要手动把doc另存为docx,然后才可以进行图片替换. 一.添加maven依赖 主要使用了以下和poi相关的依赖,为了便于获取html的图片元素,还使用了jsoup: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi&

  • 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.a

  • Java用freemarker导出word实用示例

    最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 一.模板的制作 先用Word做一个模板,如下图: (注意,上面是有表格的,我设置了边框不可见)然后另存为XML文件,之后用工具打开这个xml文件,有人用firstobject XML Editor感觉还不如notepad++,我这里用notepad++,主要是有高亮显示,和元素自动配对,效果如下: 上面黑色的地方基本是我们之后要替换的地

  • 使用Java读取Word文件的简单例子分享

    java读取word文档时,虽然网上介绍了很多插件poi.java2Word.jacob.itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用):java2Word.jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄:itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法.经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,

  • java使用poi读取ppt文件和poi读取excel、word示例

    Apache的POI项目可以用来处理MS Office文档,codeplex上还有一个它的.net版本.POI项目可创建和维护操作各种基于OOXML和OLE2文件格式的Java API.大多数MS Office都是OLE2格式的.POI通HSMF子项目来支持Outlook,通过HDGF子项目来支持Visio,通过HPBF子项目来支持Publisher. 使用POI抽取Word简单示例: 要引入poi-3.7.jat和poi-scratchpad-3.7.ajr这两个包. 复制代码 代码如下: p

  • java使用Jsoup组件生成word文档

    先利用jsoup将得到的html代码"标准化"(Jsoup.parse(String html))方法,然后利用FileWiter将此html内容写到本地的template.doc文件中,此时如果文章中包含图片的话,template.doc就会依赖你的本地图片文件路径,如果你将图片更改一个名称或者将路径更改,再打开这个template.doc,图片就会显示不出来(出现一个叉叉).为了解决此问题,利用jsoup组件循环遍历html文档的内容,将img元素替换成${image_自增值}的标

  • java/word+fusionchart生成图表深入分析

    一个朋友的项目里用到了fusionchart,同时需要提供多个报表的word下载功能. 毫无疑问,只是一个很棘手的问题. fusionchart提供了服务端和客户端生成图片的功能,都是基于client端展示了flash以后做的. 朋友的项目是基于linux的,office本身的那套com机制是没办法通过jacob调用了. 纯java的操作word,POI和docx4j,可以生成word文档,table,插入图片. 一个可行的思路是点击下载报表时,先在一个新页面打开各个flash的图表,再依次调用

随机推荐