java浏览器预览文件_分享一个超牛逼的 Java 文件在线预览项目

本文介绍了一个基于SpringBoot和OpenOffice的Java项目,用于实现文件在线预览功能。该项目支持.doc、.docx、.xls、.ppt等格式的文件转换为pdf和html,并在浏览器中直接预览。通过配置应用可以开启多个OpenOffice进程以提高转换效率。项目提供文件上传、转换和预览接口,源码和演示地址已给出。
摘要由CSDN通过智能技术生成

原标题:分享一个超牛逼的 Java 文件在线预览项目

‍‍

3ff0921653cc7de6577435d2cae6ed8d.png

简介

基于 OpenOffice 服务将文件 (.doc、.docx、.xls、.ppt) 转化为pdf、html格式,然后直接在浏览器渲染输出。

内置功能

文件上传功能

文件转换功能

文件预览功能

远程文件预览功能

代码集成

基于 SpringBoot + OpenOffice 实现的项目案例,配置文件 application.properties 引入:

# 默认不开启 需要开启的设置成true

jodconverter.local.enabled= true

# 开启多个openOffice进程,每个端口对应一个进程

jodconverter.local.portNumbers=8100,8200

# openOffice进程重启前的最大进程数

jodconverter.local.maxTasksPerProcess=100

项目启动会自动生成两个转换进程,下面是伪代码实现:

@RestController

@RequestMapping( "document")

publicclassConverterController{

@Autowired

privateDocumentConverter documentConverter;

/**

* 文件上传

*/

@RequestMapping( "/upload")

publicResult upload(MultipartFile file){

try{

if(file != null) {

File parentFile = createParentFile;

String fileName = file.getOriginalFilename;

String suffix = fileName.substring(fileName.lastIndexOf( "."));

String uuid = IdUtil.simpleUUID;

fileName = uuid + suffix;

File docFile = newFile(parentFile, fileName);

FileUtil.writeFromStream(file.getInputStream, docFile);

/**

* 年月日目录

*/

String fileDay = DateUtil.thisYear + "/"+ (DateUtil.thisMonth + 1) + "/"

+ DateUtil.thisDayOfMonth;

String imagePath = SystemConstant.FILE + "/document/"+ fileDay + "/"+ fileName;

/**

* 实时转换

*/

logger.info( "开始转换pdf......");

File toFile = newFile(parentFile, uuid + ".pdf");

documentConverter.convert(docFile).to(toFile).execute;

logger.info( "开始转换html......");

toFile = newFile(parentFile, uuid + ".html");

converter( docFile,toFile);

returnResult.ok(imagePath);

} else{

returnResult.error;

}

} catch(Exception e) {

logger.error( "转换异常{}",e);

returnResult.error;

}

}

}

软件截图

c50647d4ed1eff79a90b4d85ce5371c8.png

98ca1e0c27acc957c77ad0557a7f41c2.png

68aac661205ba58185bc69e010debc20.png

65a24563cf737e067361be1218d9eca8.png

855990e22e9e8186777714c4f6e9fb1a.png

719eed34056e26be96c5517ceea461bf.png

dcec35297fb16408d0d1eb965fd7d37c.png

小结

网上很多文章,Java 集成 OpenOffice 已经老得不能再老了,在 Linux 下还有各种启动问题,本案例只需要在系统中安装好相关服务,程序启动会自动生成 OpenOffice 进程。

源码

源码地址:https://gitee.com/52itstyle/SPTools

演示地址:https://tools.cloudbed.vip

账号密码:admin admin2020

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值