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

‍‍简介基于OpenOffice服务将文件(.doc、.docx、.xls、.ppt)转化为pdf、html格式,然后直接在浏览器渲染输出。内置功能文件上传功能文件转换功能文件预览…

大家好,又见面了,我是你们的朋友全栈君。

‍‍

简介

基于 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 文件在线预览项目

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

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

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

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

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

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

小结

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

源码

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

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

账号密码:admin admin2020

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127459.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月9日 下午9:20
下一篇 2022年4月9日 下午9:20


相关推荐

  • go语言goquery下载图片实例「建议收藏」

    crawl.gopackagemainimport(“fmt””strings””strconv””net/http””net/url””io/ioutil””os””log””runtime””flag””github.com/PuerkitoBio/goquery”)constH

    2022年4月9日
    98
  • 实现一个div的拖拽效果_js如何实现拖拽和上下移动

    实现一个div的拖拽效果_js如何实现拖拽和上下移动公司要开一个技术分享会,给我们出了几个简单的题去实现,其中有如何实现表格中列之间的拖拽,我知道html5中有个新方法可以实现,但是没有认真学习,现在闲了去学学,发现关于drag和drop的文章有很多,

    2022年8月3日
    6
  • 使用批处理杀进程[通俗易懂]

    使用批处理杀进程[通俗易懂]在工作中经常会有发送远端命令来重启应用或是修改项目的情况。有时候,由于权限问题以及便捷性,并不总是能够远程控制,这时候需要发送一些远程命令来执行操作。使用apache搭建一个服务器,基于访问html来发送一些命令,可以远程重启服务器。但是存在一个问题,比如,架设html的服务器在执行批处理命令的时候,执行到这句:call“D:/tomcat/bin/shutdown.bat”这时候,并没

    2025年9月2日
    10
  • Cursor编辑器+MCP:AI编程新姿势,手把手教你玩转!

    Cursor编辑器+MCP:AI编程新姿势,手把手教你玩转!

    2026年3月16日
    2
  • 使用MicrobiomeAnalyst统计和功能分析微生物组数据

    使用MicrobiomeAnalyst统计和功能分析微生物组数据文章目录使用MicrobiomeAnalyst进行微生物组数据的全面统计、功能和元分析 摘要 背景Introduction 分析流程和界面设计 图1MicrobiomeAnalyst工作流程概述。 图2全面的数据分析和报告生成 与其他网页工具比较 表1比较MicrobiomeAnalyst和其他三种网页工具对微生物组数据分析的流程 局限性 实验设计 综合分析16SrRNA丰度数据 基因丰度数据的功能分析和网络可视化 与公共数据集的

    2022年5月11日
    50
  • Springboot内置tomcat优化

    Springboot内置tomcat优化目录一 spring configuratio metadata json 内置 tomcat 优化 1 常用配置说明 2 springboot 中的配置文件二 keepalive 链接设置一 spring configuratio metadata json 内置 tomcat 优化 1 常用配置说明我们在使用 springboot 开发 web 项目时 大多数时候采用的是内置的 Tomcat 当然也可以配置支持内置的 jetty 内置 Tomcat 有什么好处呢 方便微服务部署 减少繁杂的配置 方便项

    2026年3月17日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号