[开源]文档在线预览的中间件,简单配置即可多格式文件在线预览

科技一飞开源 2024-01-10 18:26:06

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介file-preview-spring-boot-starter

一个文档在线预览的中间件可通过简单的配置即可集成到springboot中支持word、excel、ppt、pdf、图片、视频、音频、markdown、代码、网页、epub电子书、Xmind脑图、压缩文件、bpmn(业务流程管理和符号)、cmmn(案例管理模型和符号)、dmn(决策管理和符号)等格式文件的在线预览

二、开源协议

使用Apache-2.0开源协议

三、界面展示

文件类型

预览组件

预览示例

word/excel/ppt

jodconverter

word/excel/ppt

Spire.Office

word/excel/ppt

onlyoffice

word/excel/ppt

libreoffice online

word/excel/ppt

Collabora Online

pdf

PDF.js

audio音频

audio.js

video视频

videojs

markdonw

Marked

代码

CodeMirror

epub电子书

epub.js

xmid脑图

xmind-embed-viewer

网页

直接渲染

压缩文件

Apache Commons Compress

bpmn

bpmn.io

cmmn

bpmn.io

dmn

bpmn.io

四、功能概述

一个文档在线预览的中间件,可通过简单的配置即可集成到springboot中,支持word、excel、ppt、pdf、图片、视频、音频、markdown、代码、网页、epub电子书、Xmind脑图、压缩文件、bpmn(业务流程管理和符号)、cmmn(案例管理模型和符号)、dmn(决策管理和符号)等格式文件的在线预览。

五、技术选型第一步 增加 JitPack 仓库<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository></repositories>第二步 引入jar

1.1.7版本后groupId更换为com.github.wb043072011.2.0版本后升级到jdk 17 SpringBoot 3.2.0

<dependency> <groupId>com.github.wb04307201</groupId> <artifactId>file-preview-spring-boot-starter</artifactId> <version>1.2.2</version></dependency>第三步 在启动类上加上@EnableFilePreview注解@EnableFilePreview@SpringBootApplicationpublic FilePreviewDemoApplication { public static void main(String[] args) { SpringApplication.run(FilePreviewDemoApplication.class, args); }}第四步 注入IFilePreviewService,并对文件进行转换

目的是将 word,ppt转换成pdf excel转换成html,并存储所有的预览文件 也可以只记录源文件的位置

@Autowired FilePreviewService filePreviewService; //预览文件转换 FilePreviewInfo filePreviewInfo=filePreviewService.covert(file.getInputStream(),file.getOriginalFilename());在针对word,excel,ppt文件的预览上支持5种模式jodconverterspire.officeonlyofficeLibreOffice OnlineCollabora Online预览文件信息

可通过第四步返回的文件信息中的id访问http://ip:port/file/preview?id=??进行文件预览如果配置了context-path,请在地址中同样添加使用了一些开源组件帮助预览文件内容

六、源码地址

访问一飞开源:https://code.exmay.com/

0 阅读:0

科技一飞开源

简介:感谢大家的关注