分享一个超牛逼的 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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • densenet解析_给我一个承诺详细解读

    densenet解析_给我一个承诺详细解读这篇文章是DenselyConnectedConvolutionalNetworks的解读,在精简部分内容的同时补充了相关的概念。如有错误,敬请指正。

  • loadrunner安装包下载_loadrunner2021安装

    loadrunner安装包下载_loadrunner2021安装LoadRunner安装包下载:下载链接:https://pan.baidu.com/s/10BdYFXLPYdW6N7Q67D8mjQ提取码:a3piLoadRunner安装:下载后找到路径,点击下载后的HPELoadRunner12.55CommunityEdition.exe(安装版)运行,建议鼠标右键以管理员身份运行(运行的时候尽量右键管理员运行,如果没有选择右键管理员运行,会提示权限,点击是就可以啦)选择安装的地址(所有的安装地址不能有中文),可以选择默认地.

  • Linux操作系统基础

    Linux操作系统基础Linux简介Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机Linux介绍Linux出现于1991年,是由芬兰赫尔辛基大学学生LinusTorvalds和后来加入的众多爱好者共同开发完成Linux特点多用户,多任务,丰富的网络功能…

  • VMware虚拟机安装Debian10 (超级详细)

    零基础虚拟机安装debian10

  • stm32f103c8t6电压采集adc_ADC电压采样显示

    stm32f103c8t6电压采集adc_ADC电压采样显示STM32F103+ADC采集实时电压+LCD1602A显示前言代码前言刚开始学习STM32,用的是开发板是野火的指南者,这款板子网上资源很多。在学习ADC和LCD部分时,想利用手头仅有的LCD1602A进行显示电压,经过不断调试后,就有如下代码。代码main.c//Anhighlightedblockvarfoo=’bar’;…

  • ?条件运算符的结合——从右往左[通俗易懂]

    ?条件运算符的结合——从右往左[通俗易懂]#include<stdio.h>#include<stdlib.h>intmain(){ intmax=1; inti=11,j=13,k=5; max=i>j?i>k?i:k:j>k?j:k; printf(“max=%d\n”,max); return0;}…

发表回复

您的电子邮箱地址不会被公开。

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