openoffice将图片转换为html,Java利用OpenOffice进行将word,excel转化成html解析到界面(上)...

本文主要是介绍openoffice将图片转换为html,Java利用OpenOffice进行将word,excel转化成html解析到界面(上)...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近项目中遇到一个新需求,需要将Word和Excel文档解析成为html编码并在前台显示,word中包含图片信息,保留原文档基础样式,博主查找了相关资料后,利用OpenOffice第三方插件,以及自己封装了一些解析方法,功能已经实现,在此分为上下两部分做总结以便后期使用,希望可以帮助到大家,如有更好的建议望留言告知。

1.OpenOffice

1.软件下载

首先,去到官网根据自己的需求下载所需要的版本(我的版本是4.1.4)。

07b544ea1f1e7d84969b598ca4697ca6.png

2.软件安装

双击安装包 打开运行程序 这里是安装向导首界面 点击下一步按钮

674c8c75c7f192d0bc101117ef15a036.png

点击浏览按钮 选择安装目录路径 如图所示

180e98655ba14f3316737099d5fd0337.png

会自动检测系统中的插件 如果需要会自动安装

77d346ced3ff9b72af5e54b9e1a75e5a.png

输入使用的用户 以及选择用户权限 点击下一步按钮

a70b31bef53359ba7dcee381b509e7b3.png

这里勾选通常安装 简单而且点击下一步

4ac12cd85d9d3f6802bc079b5c142db0.png

是否在桌面上创建一个快捷方式 建议勾选

bfe4685043fed984630c25db9efde2fc.png

这是安装完成界面 点击完成关闭安装向导

50f18c64332bbea48c141eec71c27122.png

PS:安装度娘上都有,博主帮你们移植过来,按照步骤即可。

3.启动OpenOffice服务

打开cmd命令窗口,进入OpenOffice安装目录下的program目录,如下图

f3002f58ef873e2e57d9c53512858d44.png

因为我的OpenOffice安装在D盘所以我先进的D盘,至于怎么在cmd里敲命令行我想大家都懂得,在这里我就不献丑了。

进入program目录后,继续执行(按原句执行不要更改)

soffice -headless -accept=”socket,host=127.0.0.1,port=8100;urp;” -nofirststartwizard

如下图:

1da2f587a5f682add598ab3541e67a63.png

执行完成后可打开:任务管理器 进行查看服务是否启动 如下图:

记住每次重启电脑都得重新打开OpenOffice执行上述步骤,如果需要自启动请自行写自启动脚本

4.工具类

OpenOfficeUtils.java

package com.utils;

import java.io.BufferedReader;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.ConnectException;

import com.artofsolving.jodconverter.DocumentConverter;

import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;

import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;

import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

/**

* 任意文件转化为html

*

* @author Mr.F

*

*/

public class OpenOfficeUtils {

// 任意文件转html

public static void FileToHtml(String sourceFile, String htmlFile) {

File SourceFile = new File(sourceFile);

File HtmlFile = new File(htmlFile);

/*

* 转换成pdf文件

* 项目执行需要启动OpenOffice服务,在系统命令窗口执行命令。

* cd C:\Program Files (x86)\OpenOffice.org 4\program

* soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

*/

if(SourceFile.exists()) {

if(!HtmlFile.exists()) {

OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);

try {

connection.connect();

DocumentConverter converter = new OpenOfficeDocumentConverter(connection);

converter.convert(SourceFile, HtmlFile);

HtmlFile.createNewFile();

connection.disconnect();

System.out.println("第二步:转换为HTML格式 路径" + HtmlFile.getPath());

} catch (java.net.ConnectException e) {

//} catch (Exception e) {

e.printStackTrace();

System.out.println("OpenOffice服务未启动");

try {

throw e;

} catch (ConnectException e1) {

e1.printStackTrace();

}

} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {

e.printStackTrace();

System.out.println("读取文件失败");

throw e;

} catch (Exception e){

e.printStackTrace();

try {

throw e;

} catch (Exception e1) {

e1.printStackTrace();

}

}

} else {

System.out.println("已转换为HTML,无需再次转换");

}

} else {

System.out.println("要转换的文件不存在");

}

}

public static void main(String[] args) {

FileToHtml("F:\\ceshi.xlsx", "F:\\ceshi1.html");

}

}

PS:OpenOffice会自动识别Office版本,比如doc和docx以及xls和xlsx。

先告诉大家工具下载和使用情况,下篇会结合web工程给大家演示完整的功能,如有问题请留言告知,我们不止会New!

这篇关于openoffice将图片转换为html,Java利用OpenOffice进行将word,excel转化成html解析到界面(上)...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/352960

相关文章

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown