POI Word DOC格式转Html

apache poi解析word(doc)文档成xml及导出成html //遇到解析word文档的需求,文档格式不定,在网上看了好多文章,大多是简单应用api解析内容,要不就是需要windows环境,还有个在线编辑的第三方的,不太符合本人需求,目前实现了doc的,docx的后续再说吧。 //本来是想把word解析成xml形式的字符串,就参考apache poi中的wordToHtmlConverter部分源码,因为它做了很多样式的解析,本人用不到这些,解析过多反 阅读详情
package com.office;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
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 org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.w3c.dom.Document;

public class OfficeConvert {

	public static String GetFileExt(File f) {
		String ext = null;
		String s = f.getName();
		int i = s.lastIndexOf('.');
		if (i > 0 && i < s.length() - 1) {
			ext = s.substring(i + 1).toLowerCase();
		}
		return ext;
	}

	public static boolean ConvertToHtml(final String input, final String output) {
		File file = new File(input);

		if (!file.exists())
			return false;
		String ext = GetFileExt(file);
		FileInputStream fileInputStream = null;
		FileOutputStream fileOutputStream = null;
		try {

			if (ext.equals("doc")) {
				fileInputStream = new FileInputStream(input);
				HWPFDocument hwpfDocument = new HWPFDocument(fileInputStream);
				Document document = DocumentBuilderFactory.newInstance()
						.newDocumentBuilder().newDocument();
				WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
						document);

				File imageDir = new File(output + ".img");
				final String suggestDirName = imageDir.getName();
				if (!imageDir.isDirectory()) {
					imageDir.mkdirs();
				}
				
				//save image
				wordToHtmlConverter.setPicturesManager(new PicturesManager() {
					@Override
					public String savePicture(byte[] contet,
							PictureType pictureType, String suggestedName,
							float widthInches, float heightInches) {
						String imgagePath = output + ".img/" + suggestedName;
						File file = new File(imgagePath);
						FileOutputStream fos = null;
						try {
							fos = new FileOutputStream(file);
							fos.write(contet);
							fos.close();
						} catch (Exception e) {
							e.printStackTrace();
						}
						return suggestDirName + "/" + suggestedName;
					}
				});

				wordToHtmlConverter.processDocument(hwpfDocument);
				Transformer transformer = TransformerFactory.newInstance()
						.newTransformer();
				transformer.setOutputProperty(OutputKeys.INDENT, "yes");
				transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
				transformer.setOutputProperty(OutputKeys.METHOD, "html");
				fileOutputStream = new FileOutputStream(output);
				transformer.transform(
						new DOMSource(wordToHtmlConverter.getDocument()),
						new StreamResult(new OutputStreamWriter(fileOutputStream, "UTF-8")));

				return true;

			} else if (ext.equals("docx")){
				
			} else if (ext.equals("ppt")) {

			} else if (ext.equals("pptx")) {

			} else if (ext.equals("xls")) {

			} else if (ext.equals("xlsx")) {

			}

		} catch (Exception e) {

			e.printStackTrace();

		} finally {
			try {
				if (null != fileOutputStream)
					fileOutputStream.close();
				if (null != fileInputStream)
					fileInputStream.close();
			} catch (IOException e) {
				e.printStackTrace();
			}

		}

		return false;

	}
}

poi 3.17 word 转 html(带图片格式) 项目中需要用到word文档在线预览的功能,之前在网上找了一些demo,但都poi版本都是3.14以下的,而项目中已经集成了poi3.17,且其他模块中有用到3.17的包,所以不得不重新研究。目前可以将word转换为html,并且支持图片格式,表格样式还没有调完,调好了再更新上来。现在整理的工具类demo分享一下,希望对初学者学习交流有所帮助,写的不好的地方欢迎留言指正,哪位高人有更好的想法欢迎交... 阅读详情

相关推荐

SpringBoot+poi实现读取word文件内容

SpringBoot+poi实现读取word文件内容

12程序猿的博客 7852

使用POI拆分word文档并转成html在页面展示

需求:导入word文档,按照目录进行拆分并转换成html,将目录及应内容保存到数据库,通过赋值到富文本编辑器在页面展示。2、.docx需要POI XWPFDocument进行解析,同时将图片进行本地保存,遍历段落获取目录列表。4、通过Jsoup读取html文件,获取页面元素,删除空白行,删除标号,替换图片访问路径为相对路径。3、根据目录所在段落下标删除前后段落,进行文档段落拆分,将拆分的文件转换成html文件输出保存。1、添加POI对应的jar包,我基本上用到了这些,其他看个人情况自行添加。

weixin_44694333的博客 1307

POI实现word转html(带图片),实现word在线预览

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

蔡定努 5309

基于Apach POI 实现Word 转换HTML 文件

Apache POI 简介: Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等)格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“可怜的模糊实现”。 官方主页:...

zhouzhiwengang的专栏 2749

Java POI实现Word转HTML:支持.doc与.docx格式的完整解决方案

Apache POI是Java生态中处理Microsoft Office文档的标准开源库,广泛应用于报表生成、数据导入导出等场景。其核心模块HWPF(Horrible Word Processor Format)用于读写传统的.doc二进制文件,基于OLE复合文档结构解析文本与格式;而XWPF(XML-based Word Processor Format)则面向.docx格式,依托Office Open XML标准,通过ZIP封装内的XML文件实现内容抽取。关键类如和分别代表文档整体模型,

weixin_35696112的博客 1467

Apache POI操作Word文档教程与实践

Apache POI 是一款开放源代码的Java库,用于处理Microsoft Office文档格式。它支持创建、修改、显示和转换许多Microsoft Office格式,包括Excel文件(XLS和XLSX)、Word文档(DOC和DOCX)以及PowerPoint演示文稿(PPT和PPTX)等。POI项目自2001年启动以来,一直是Java处理Office文档的首选工具,其广泛的应用范围涵盖企业应用程序、数据分析工具、报告生成器以及各种自动化脚本。

weixin_42514750的博客 1161

poi xlsx转换html,POI Word DOC格式转Html

package com.office;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import javax.xml.parsers.DocumentBuil...

weixin_42134338的博客 217

STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能

单片机实现LWIP的调试

qq_40600203的博客 3068

apache poi操作office文档---- POI Word DOC格式转Html

原文地址:点击打开链接 package com.office; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import j

littlebeat123的专栏 1693

从原理图到PCB:Cadence Allegro 17.4网表同步全流程详解(含第三方网表配置)

本文详细解析了Cadence Allegro 17.4中从Orcad原理图到PCB布局的网表同步全流程。核心内容包括标准的第一方网表同步步骤,以及针对第三方网表导入时关键的封装库路径配置方法,并提供了常见同步错误的排查思路,帮助工程师高效、准确地完成设计数据传递,确保PCB设计顺利开局。

salt9的博客 653

一文详细讲解CRM系统(附架构图、流程、功能介绍)

专为中小企业量身打造高性价比的数字化转型路径!企业如何用CRM才能真正做到降本增效?今天,就用一文讲清这些问题!读完本文,你将清楚得了解CRM的概念、框架、流程、功能、企业成功案例,文末还有常见问题解答。

Dabeishandong的博客 9923

html转word_word与html互转 word转html

使用忠告使用该方式进行xhtml到word的转换, 简单转换是可以, 但是可能并没有想象中那么满意, 转换出来的word格式并不完美, 比如目录和标题都会丢失, 标题显示看起来一样, 但是是用正文加粗和加大字号来显示的. 毕竟word是一种文档格式, 而html是一种标记性语言, 要想实现完美兼容和转换很难。加上word与html互转(2) -- html转word, 虽然word与ht...

weixin_39845039的博客 654

用友U8 API 二次开发:WebService封装7个核心DLL引用与U8Login登录避坑

本文详细介绍了用友U8 API二次开发中的WebService封装与U8Login登录优化实践。通过7个核心DLL的正确引用、U8Login登录机制的深度解析及IIS环境下的特殊处理方案,为开发者提供了一套高可用性的通用解决方案,助力企业实现ERP系统的高效集成与数字化转型。

weixin_42524171的博客 504

php 预览doc文件格式,word文档转html格式在线预览,使用了phpoffice,pydocx,java POI各方案,最终用unoconv解决...

最近客户要做一个word,excel 文件在线预览功能,以下是实现此功能的全过程。由于我们用的是PHP开发项目,最开始想到的是用PHPoffice里的phpword来进行转换,以下是关键代码。$phpWord = \PhpOffice\PhpWord\IOFactory::load('test.doc');$xmlWriter = \PhpOffice\PhpWord\IOFactory::cre...

weixin_32273159的博客 731

【Android 11】使用Android Studio调试系统应用之Settings移植(五):编译Settings 模块、解决编译错误

基于Andorid 11,系列第5篇文章,本章开始,终于轮到解决正主Settings的编译问题了,使用android studio编译出Settings.apk,能看到这一章的同学,也着实不容易了,再接再厉

上周的博客 3919

紫光展锐面试——FPGA/IC设计面试面经案例总结

自我介绍;研究生的主要研究方向是什么?为什么想要应聘数字芯片相关的工作?简单介绍下数字IC设计流程。逻辑综合主要做什么?你有实际做过逻辑综合工作吗?你了解SS corner和FF corner吗?综合时应该使用哪个corner?综合时需要考虑hold吗?为什么?提高时钟频率对setup和hold有什么影响?为什么?hvt、rvt/svt、lvt有什么区别?c40、c50是指什么概念?有什么区别?你对EDA工具有过了解吗?

FPGA/MATLAB学习教程/源码/项目合作开发 1561

POI 实现word和html互转

POI转HTML(仅针对doc): package com.vito.demo.test; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExc

princeLLM的博客 3239

水文仿真软件:HEC-RAS (Hydrologic Engineering Center‘s River Analysis System)_(7).一维非稳态水力模型

自定义脚本是通过编程语言(如 Python)编写的一系列自动化任务,可以帮助用户更高效地处理数据和运行模型。编写脚本:使用 Python 或其他编程语言编写自定义脚本。集成脚本:将脚本集成到 HEC-RAS 中,实现自动化数据处理和模型运行。

kkchenjj的博客 928

java读取word文件页数方法汇总

@java读取word文件页数 最近在做一个word转html的小功能,需要用到事先获得word文件的页数来判断是否要进行转换。我从网上搜了下,发现大多数文章都写的是错误的,这里来汇总下,正确的文章我会直接放链接,毕竟那是别人的劳动成果,希望大家都支持原作者。 错误的方式汇总 1、使用Apache POI 该方式代码我就不详细贴了,只贴回来获取页数那一行: int pages = docx.getProperties().getExtendedProperties().getUnderlyingProper

sfhappy23的博客 7316

通俗易懂的Harris 角点检测

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达Harris 角点检测 认为特征点具有局部差异性。如何描述“特征点具有局部差异性”:以每一个点为中心,取一个窗口,窗口大小为5*5...

3D视觉工坊 1472

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java word转为html 两种方式

废话不多说直接上代码!

liuhai66688的博客 5587

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java Word 转 HTML 实践指南

在日常开发和办公中,我们经常需要将 Word 文档的内容展示在网页上。然而,直接在浏览器中显示 Word 文件通常会遇到排版错乱、样式丢失等问题。为了在 Web 环境中保留原文档的排版和结构,将 Word 转换为 HTML 就成为了一种常见而实用的解决方案。

SunnyDays1011的博客 777

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

poi将html文件转为docx,java使用POI实现html和word相互转换.pdf

java使使用用POI实实现现html和和word相相互互转转换换项目后端使用了springboot,maven,前端使用了ckeditor富文本编辑器。目前从html转换的word为doc格式,而图片 理支持的是docx格式,所以需要手动把doc另存为docx,然后才可以进行图片替换。一一.添添加加maven依依赖赖主要使用了以下和poi相关的依赖,为了便于获取html的图片元素,还使用了jso...

weixin_39710594的博客 2194

java poi doc 转html_POI 把Word 转换成 Html

[java]代码库package poi;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputSt...

weixin_39872044的博客 179

java将html导出成word(利用的poi包导出)

//导出到word      public void exportWord(ActionMapping actionMapping, ActionForm actionForm,              HttpServletRequest request, HttpServletResponse response) throws Exception {                    D

lcczzu的专栏 1030

利用POI将word转换成html实现在线阅读

利用POI将word转换成html实现在线阅读

1万+
上一篇: C#调试C++ com dll
下一篇: boost python 函数中传递对象
xugangjava
博客等级 码龄16年 83粉丝 72原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值