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

Posted androidstarjack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个超牛逼的 Java 文件在线预览项目相关的知识,希望对你有一定的参考价值。

简介

基于 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")
public class ConverterController {

    @Autowired
    private 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 集成 OpenOffice 已经老得不能再老了,在 Linux 下还有各种启动问题,本案例只需要在系统中安装好相关服务,程序启动会自动生成 OpenOffice 进程。

源码

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

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

账号密码:admin admin2020


 

 

--完--


 
推荐阅读:
怎么接私货?这个渠道你100%有用!请收藏!

喜欢文章,点个在看 

以上是关于一个超牛逼的 Java 文件在线预览项目的主要内容,如果未能解决你的问题,请参考以下文章

一款超牛逼的 Linux 终端复用神器(附安装使用教程)

超牛逼的应用可视化监控!结果一目了然

发现一款超牛逼的数据库工具,IDEA 公司出品,功能超多,吊炸天。。

整理37个超牛逼的Python库,用过6个算你牛

超牛逼的性能调优利器 — 火焰图

超牛逼的性能调优利器 — 火焰图