POI word转html

java 使用poi4.1.2 将word转换成html java使用poi将word转换成Html 阅读详情

转载文章来源:https://www.cnblogs.com/always-online/p/4800131.html#commentform

maven依赖 这里要注意的是依赖之间应保持版本一致,否则会导致包冲突。小白的我因此困扰挺久。

<dependencies>
        <!--doc2html start-->
        <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>
        <!--doc2html end-->

        <!--docx2html start-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.13</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>3.13</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.13</version>
        </dependency>
        <!--docx2html end-->
   </dependencies>

转换代码

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.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.core.FileURIResolver;
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.parsers.ParserConfigurationException;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import java.util.List;



import static java.lang.Boolean.FALSE;
import static java.lang.Boolean.TRUE;

public class DocTypeConvertImpl {

    public DocTypeConvertImpl() {

    }

    /*
     * @param filePath word文档的路径
     *
     */
    public void docToHtml(String filePath) throws IOException, TransformerException, ParserConfigurationException {

        //word文档类型,docx类型为TURE,doc类型为FALSE
        boolean docType = FALSE;

        //生成html文件存放路径
        final String desPath = "D:\\";
        //html图片存放路径
        final String imagesPath = "D:\\";

        //获取文件名称
        String fileName = filePath.substring(filePath.lastIndexOf("\\") + 1);
        //获取文件前缀名
        String name = fileName.substring(0, fileName.lastIndexOf("."));

        //判断文件类型
        if (fileName.endsWith(".docx") || fileName.endsWith(".DOCX")) docType = TRUE;

        //开始转换
        if (docType) {//当word文档为docx类型时
            File f = new File(filePath);
            if (!f.exists()) {
                System.out.println("Sorry File does not Exists!");
            } else {
                if (f.getName().endsWith(".docx") || f.getName().endsWith(".DOCX")) {

                    // 1) 加载word文档生成 XWPFDocument对象
                    InputStream in = new FileInputStream(f);
                    XWPFDocument document = new XWPFDocument(in);

                    // 2) 解析 XHTML配置 (这里设置IURIResolver来设置图片存放的目录)
                    File imageFolderFile = new File(imagesPath);
                    XHTMLOptions options = XHTMLOptions.create().URIResolver(new FileURIResolver(imageFolderFile));
                    options.setExtractor(new FileImageExtractor(imageFolderFile));
                    options.setIgnoreStylesIfUnused(false);
                    options.setFragment(true);

                    // 3) 将 XWPFDocument转换成XHTML
                    OutputStream out = new FileOutputStream(new File(desPath + name + ".html"));
                    XHTMLConverter.getInstance().convert(document, out, options);
                    out.close();
                }
            }

        } else if (!docType) { //当word文档为doc类型时
            InputStream input = new FileInputStream(new File(filePath));
            HWPFDocument wordDocument = new HWPFDocument(input);
            WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());

            //设置图片存放的位置
            wordToHtmlConverter.setPicturesManager(new PicturesManager() {
                public String savePicture(byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches) {
                    File imgPath = new File(imagesPath);
                    if (!imgPath.exists()) {//图片目录不存在则创建
                        imgPath.mkdirs();
                    }
                    File file = new File(imagesPath + suggestedName);
                    try {
                        OutputStream os = new FileOutputStream(file);
                        os.write(content);
                        os.close();
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return imagesPath + suggestedName;
                }
            });

            //解析word文档
            wordToHtmlConverter.processDocument(wordDocument);
            Document htmlDocument = wordToHtmlConverter.getDocument();

            File htmlFile = new File(desPath + name+".html");
            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();


        }


    }
}

java实现在线预览--poi实现word、excel、ppt转html java实现在线预览- -之poi实现word、excel、ppt转html 阅读详情

相关推荐

Java引用POI实现Word转Html方法

1.     下载POI工具并引用2.     读取整个doc文档,获得该文档的所有字符串。3.     从该字符串中得到标题,把该标题构成一个HTML格式的字符串,如测试文档。4.     从该文档中判断是否有表格,如有,把每个表格的开始偏移量,结束偏移量记录下来,同时根据每个表格的行,列读取表格的内容,并构造出表格的HTML字符串。

cornfieldc01的专栏 3万+

Word2Html(doc docx)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34006965的博客 1135

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

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

蔡定努 5311

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

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

weixin_44694333的博客 1307

Apache POI实现Word转HTML在线阅读教程

Apache POI是一个流行的Java库,用于处理Microsoft Office文档格式。它提供了一个易于理解和使用的API来访问各种Microsoft Office格式,如Word, Excel, PowerPoint等。Apache POI是 Apache Software Foundation的一个项目,其名称源自”Poor Obfuscation Implementation”的缩写。POI项目的目标是创建和维护Java的API,以便处理Microsoft Office格式文件。

weixin_28809949的博客 520

基于Apache POI实现Word到HTML转换的在线阅读解决方案

Apache POI是Java平台上操作Microsoft Office文件的事实标准开源库,其核心设计理念是通过分层抽象实现对多种Office格式的统一访问。针对Word文档,POI提供了HWPF(Horrible Word Processor Format)和XWPF(XML-based Word Processor Format)两大模块,分别处理.doc和.docx两种物理结构迥异的文件格式。// 示例:判断文档类型并初始化对应处理器// ZIP头标识。

weixin_34535286的博客 919

java poi html转word_POI操作word和html相互转化

下面是里两个类:第一个类是html转为word,第二个是word转html(最下面附上jar包下载链接)package com.wz.poi.wordHtml;/*** 2018/4/24* @author Administrator**/import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io...

weixin_34101577的博客 2225

Apache POI Word转HTML实战框架

Apache POI是一个开源的Java库,它提供了一组API来处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。自从Apache POI诞生以来,它就因其在Java环境中处理Office文档的能力而受到青睐。本章将简要介绍Apache POI项目的历史和核心特性,从其基本的安装配置开始,帮助新用户快速上手,并为后续章节中对Apache POI深入探讨奠定基础。

weixin_35307279的博客 940

java poi html转word_java POI HTML转Word

1、引用的jar包org.apache.poipoi4.1.02、核心代码String html = "测试内容POIFSFileSystem poifs = null;FileOutputStream ostream = null;ByteArrayInputStream bais = null;String uuid = "测试.doc";File file = null;try {//HTM...

weixin_36391538的博客 416

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

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

java使用poi将word转为html

java使用poi将word转为html

poi转excel,word文档为html

poi转excel,word为html,支持2003,2007等版本。 1:excel转html import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputSt

靓仔梁的专栏 4565

poi3.17实现word转html(可以作为流读取)

通过poi3.17将本地word转化为html页面,同时也可以读取流通过IOUtils将流转化为string,返回到前台。可以替代ueditor输入,通过ajax转化后返回在ueditor中显示。很棒的功能。

java poi word转html_Java:POI方式实现Word转html/htm

这里就不对POI做过多的说明了,贴个官网 https://poi.apache.org/,随意看看。首先搞清楚下要将doc/docx文档转成html/htm的话要怎么处理,根据POI的文档,我们可以知道,处理doc 格式文件对应的 POI API 为 HWPF、docx 格式为 XWPF。此处参考下这篇好文:http://www.open-open.com/lib/view/open1389594...

weixin_27785375的博客 1507

Android将word(doc、docx)转换成html

将word(doc、docx)转换成html 然后可以调用网页控件将其显示出来

QCustomPlot实战:从入门到精通的数据可视化

本文详细介绍了如何使用QCustomPlot进行数据可视化,从基础环境搭建到高级图表定制,涵盖实时监控、多坐标系联动等实战技巧。基于Qt的QCustomPlot库以其强大的绘图能力和灵活的API,帮助开发者快速实现专业级数据可视化效果。

weixin_29003437的博客 115

转html图片 xwpf_使用POI实现word转html

一、maven依赖<!-- 针对2007以上版本的库 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</versi...

weixin_42419782的博客 756

AI智能体赋能Cypress:自动化前端测试的新范式

自动化测试是现代软件工程保障质量的核心实践,其原理是通过脚本模拟用户操作,对软件功能进行验证。随着大语言模型(LLM)和智能体(Agent)技术的发展,测试自动化正迈向智能化新阶段。智能体能够理解自然语言描述的测试需求,并自主规划、执行测试步骤,这为应对前端UI频繁变更、测试用例维护成本高等挑战提供了新思路。在工程实践中,将Cypress这一流行的前端测试框架封装为智能体可调用的标准化技能(Skill),是实现这一愿景的关键。通过设计清晰的交互协议和状态管理机制,智能体可以像人类测试工程师一样“感知”页面状

weixin_33726318的博客 687
上一篇: mybatis入门
下一篇: Spring_创建bean的三种方式
M2L
M2L
博客等级 码龄10年 12粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值