一个超牛逼的 Java 文件在线预览项目

沙海 2021年7月25日09:31:01Java评论34字数 1990阅读6分38秒阅读模式
摘要

一个超牛逼的 Java 文件在线预览项目 程序员闪充宝

一个超牛逼的 Java 文件在线预览项目

程序员闪充宝 文章源自JAVA秀-https://www.javaxiu.com/39096.html

收录于话题文章源自JAVA秀-https://www.javaxiu.com/39096.html

#java1文章源自JAVA秀-https://www.javaxiu.com/39096.html

#程序员闪充宝18文章源自JAVA秀-https://www.javaxiu.com/39096.html

#开源项目5文章源自JAVA秀-https://www.javaxiu.com/39096.html

一个超牛逼的 Java 文件在线预览项目

简介

基于 OpenOffice 服务将文件 (.doc、.docx、.xls、.ppt) 转化为pdf、html格式,然后直接在浏览器渲染输出。文章源自JAVA秀-https://www.javaxiu.com/39096.html

内置功能

  • 文件上传功能文章源自JAVA秀-https://www.javaxiu.com/39096.html

  • 文件转换功能文章源自JAVA秀-https://www.javaxiu.com/39096.html

  • 文件预览功能文章源自JAVA秀-https://www.javaxiu.com/39096.html

  • 远程文件预览功能文章源自JAVA秀-https://www.javaxiu.com/39096.html

代码集成

基于 SpringBoot + OpenOffice 实现的项目案例,配置文件 application.properties 引入:文章源自JAVA秀-https://www.javaxiu.com/39096.html

# 默认不开启 需要开启的设置成truejodconverter.local.enabled=true# 开启多个openOffice进程,每个端口对应一个进程jodconverter.local.portNumbers=8100,8200# openOffice进程重启前的最大进程数jodconverter.local.maxTasksPerProcess=100

项目启动会自动生成两个转换进程,下面是伪代码实现:文章源自JAVA秀-https://www.javaxiu.com/39096.html

@RestController@RequestMapping("document")publicclassConverterController {@Autowiredprivate DocumentConverter documentConverter;/** * 文件上传 */@RequestMapping("/upload")public Result 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 = new File(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 = new File(parentFile, uuid + ".pdf"); documentConverter.convert(docFile).to(toFile).execute(); logger.info("开始转换html......"); toFile = new File(parentFile, uuid + ".html"); converter( docFile,toFile);return Result.ok(imagePath); } else {return Result.error(); } } catch (Exception e) { logger.error("转换异常{}",e);return Result.error(); } }}

软件截图

一个超牛逼的 Java 文件在线预览项目文章源自JAVA秀-https://www.javaxiu.com/39096.html

一个超牛逼的 Java 文件在线预览项目文章源自JAVA秀-https://www.javaxiu.com/39096.html

一个超牛逼的 Java 文件在线预览项目文章源自JAVA秀-https://www.javaxiu.com/39096.html

一个超牛逼的 Java 文件在线预览项目文章源自JAVA秀-https://www.javaxiu.com/39096.html

一个超牛逼的 Java 文件在线预览项目文章源自JAVA秀-https://www.javaxiu.com/39096.html

一个超牛逼的 Java 文件在线预览项目文章源自JAVA秀-https://www.javaxiu.com/39096.html

一个超牛逼的 Java 文件在线预览项目文章源自JAVA秀-https://www.javaxiu.com/39096.html

小结

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

源码

源码地址:https://gitee.com/52itstyle/SPTools文章源自JAVA秀-https://www.javaxiu.com/39096.html

演示地址:https://tools.cloudbed.vip文章源自JAVA秀-https://www.javaxiu.com/39096.html

账号密码:admin admin2020文章源自JAVA秀-https://www.javaxiu.com/39096.html

SpringBoot 的@Value注解太强大了,用了都说爽!SpringBoot:如何优雅地进行参数传递、响应数据封装、异常处理?彻底搞懂 Nginx 的五大应用场景记一个自己项目上线的全过程SpringBoot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架(实战版)号称 GitHub 上有史以来,高仿版微信最牛逼的项目来了(附完整源码)Spring Boot 这样优化,让你的项目飞起来!快手二面:Java 里的 for (;;) 与 while (true),哪个更快?springboot+redis+Interceptor+自定义annotation实现接口自动幂等小米面试官:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了~SpringBoot实现登录拦截器(实战版)
文章源自JAVA秀-https://www.javaxiu.com/39096.html

阅读原文文章源自JAVA秀-https://www.javaxiu.com/39096.html

继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定