Java使用POI将doc文档转为Html
Java使用POI将doc文档转为Html
- 前提
- 几个使用到的类
- 几个方法的理解
- converter.setPicturesManager(xxxx)
- converter.processDocument(hwpfDocument);
- 外观模式
- 具体实现
- 结果
- 测试
- 生成结果
- Word内容
- 生成的目录以及结果
- Html
- 参考资料
前提
关于依赖什么的请看上一篇文章:docx转Html
几个使用到的类
HWPFDocument :代表了一个doc文件对象
WordToHtmlConverter :看名字就知道了用于Word转Html的类
Document : 表示一个完整的Html或者XML文档对象
DOMSource : 源树
StreamResult : 转换结果的持有者
Transformer :转换器用于将源树转为结果树
吐槽一下POI类的注释,是真的少,还好命名都规范源码还是能看个大概 = =
几个方法的理解
converter.setPicturesManager(xxxx)
这个用的是匿名内部类
converter.processDocument(hwpfDocument);
就是一个简单的塞值,将hwpfDocument内容属性塞到转换器内部的HtmlDocumentFacade中
外观模式
外观模式,这个一句话说不清楚,我就放在最下面了链接里了。上面的HtmlDocumentFacade就是使用了外观模式。
具体实现
因为该方法作用和之前提到的类似,所以其中的工具类的方法大家去上一篇自取即可:docx转Html
/** @description 将doc文档转为html* @author 三文鱼* @date 9:16 2022/4/29* @param filePath* @param htmlPath* @return void**/public static void docToHtml(String filePath , String htmlPath) throws Exception {//获取文件名称String myFileName = getFileNameInfo(filePath , 0);//该doc文件转换后所有文件存放的目录String docRootPath = htmlPath + File.separator + myFileName + getDataTime() + File.separator;String imagePath = docRootPath + "image" + File.separator;//转换的html文件路径 与图片在同目录中String fileOutName = docRootPath + myFileName + ".html";//创建图片文件的存储目录new File(imagePath).mkdirs();//poi中doc文档对应的实体类HWPFDocument hwpfDocument = new HWPFDocument(new FileInputStream(filePath));//使用空的文档对象构建一个转换对象WordToHtmlConverter converter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());//设置存储图片的管理者--使用匿名内部类实现 该类实现了PicturesManager接口,实现了其中的savePicture方法converter.setPicturesManager(new PicturesManager() {FileOutputStream out = null;//在下面的processDocument方法内部会调用该方法 用于存储word中的图片文件@Overridepublic String savePicture(byte[] bytes, PictureType pictureType, String name, float width, float height) {try {//单个照片的保存out = new FileOutputStream(imagePath + name);out.write(bytes);} catch (IOException exception) {exception.printStackTrace();}finally {if(out != null) {try {out.close();} catch (IOException e) {e.printStackTrace();}}}//这里要返回给操作者(HtmlDocumentFacade)一个存储的路径 用于生成Html时定位到图片资源return imagePath + name;}});//使用外观模式,将hwpfDocument文档对象设置给HtmlDocumentFacade中的Document属性converter.processDocument(hwpfDocument);//获取转换器中的document文档Document htmlDocument = converter.getDocument();//充当文档对象模型 (DOM) 树形式的转换源树的持有者 -- 源树DOMSource domSource = new DOMSource(htmlDocument);//转换器 该对象用于将源树转换为结果树Transformer transformer = TransformerFactory.newInstance().newTransformer();//设置输出时的以什么方式输出,也可说是结果树的文件类型 可以是html/xml/text或者是一些扩展前三者的扩展类型transformer.setOutputProperty(OutputKeys.METHOD , "html");//设置一些必要的属性 设置输出时候的编码为utf-8transformer.setOutputProperty(OutputKeys.ENCODING , "utf-8");//转换 将输入的源树转换为结果树并且输出到streamResult中transformer.transform(domSource , new StreamResult(new File(fileOutName));}
结果
测试
测试的话就跟之前的代码一样了
public class DocTest {public static void main(String[] args) {String filePath = "F:\\学习记录\\测试数据\\word\\doc\\test.doc";String htmlPath = "F:\\学习记录\\测试数据\\word\\html";try {MyDocUtil.docToHtml(filePath, htmlPath);}catch (Exception exception) {exception.printStackTrace();}}
}
生成结果
Word内容
生成的目录以及结果
Html
参考资料
DOM树:DOM树的组成.
POI官方文档:POI官方文档.
JDK的API文档: Java的API文档.
外观模式:外观模式
word与html互转:word与Html互转.
Java使用POI将doc文档转为Html相关推荐
- java利用POI替换word文档中的标签
java利用POI替换word文档中的标签 <dependency><groupId>org.apache.poi</groupId><artifactId& ...
- java用poi导出word,Java使用POI导出Word文档的操作教程,poiword
Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...
- java生成自己的Doc文档
java生成自己的Doc文档 第一种通过命令行来生成 简要代码如下: package com.can.www;/*** @author liu* @version 1.0* @since 1.8*/ ...
- 利用mammoth.js将doc文档转为html
在项目中遇到一个需求:需要将doc文档转为html格式: 最终觉得mammoth.js是非常好用的一个插件.但是目前仅支持本地资源,网络地址不能识别. <!DOCTYPE html> &l ...
- [实用][更新中]Java Apache POI 打印Word文档工具(含文本替换,动态表格功能)
[实用][更新中]Java Apache POI 打印Word文档工具(含文本替换,动态表格功能) 基于Apache POI对Word进行操作 一.基于Apache POI封装的word文档工具V1. ...
- JAVA 利用poi EXCLE模板文档导出数据
JAVA 利用poi EXCLE模板文档导出数据 1.导入jar包 下载地址:添加链接描述 提取码:xqkg 2.EXCLE模板 3.代码示例 package utill;import java.io ...
- java doc转换docx_JAVA - 将doc文档转为docx文档
因为项目需要解析文档,而且 doc 文档还不少,全网能找到的靠谱的解析doc甚至是将doc转txt的方案实际上不多.这个是部分文件统计 .Net 和 java 有一个收费的解决方案,但是我确实没钱sp ...
- java用poi导出wrod文档支持图片并解释代码
使用POI(Poor Obfuscation Implementation,即弱混淆实现)库可以很方便地在Java代码中导出Word文档,同时还支持插入图片. 下面是一个简单的例子,它创建了一个包含一 ...
- Java实战—POI操作Excel文档、读取、写入、合并单元格
一.POI项目简介 POI全称 Poor Obfuscation Implementation,利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:http: ...
最新文章
- 监控摄像头cad图例_一套实用的智能化弱电系统大样图,可以作为弱电项目CAD设计素材...
- Java Persistence API:快速入门
- Linux 字符设备驱动开发基础(一)—— 编写简单 LED 设备驱动
- mysql csv存储引擎_2.2 mysql存储-CSV存储引擎
- BGP十三条选路原则
- windows bat脚本 理解 @echo off 和 echo off 的区别
- Python爬虫:通过Selenium库学习如何爬取京东畅销排行榜书籍
- 「解读苏宁」30年门店数字化发展心法与实践分享
- cisco思科交换机的基本使用
- HTML5 实例:旋转同时放大缩小的方块(canvas)
- 编写代码的「八荣八耻」(上篇)
- 2 MyBatis Sql映射文件
- 记——博客后台管理系统
- 强化学习gym的使用之mountaincar的训练
- LeetCode.黑白方格画
- 仿小米商城官网首页模板(HTML+CSS)
- python 选择排序 快速排序
- html给页面整体添加左右边距_打印html页面时的边距
- 每日一题(day5)
- 如何从服务器复制cadence库文件到windows,cadence使用笔记