深夜开源一个基于SpringBoot的文档上传、转换、预览项目

前言

群里有小伙伴问,撸主有没有文档管理的功能模块给参考一下。恰好,撸主之前做过文档预览的案例,怎么说呢,这是个伤感的话题,撸主的案例随着前公司的破产倒闭随风而去了。

去屎去了,撸主一点都不慌,凭着模糊的印象,一晚撸了一个简单的文档管理模块,的确是简单了那么一丢丢,但是不影响体验,后面会慢慢优化,直到大家足够满意。

开肝

话不多说,先上图。

功能提供了文档上传、后台转换、前台下载、前台预览功能,小伙伴们可以上传 Excel、Word、Pdf文档,后台会默认转为Pdf文档,并可以在前台预览显示。目前只支持PC端预览,后期会配合前端插件实现多端预览。

转换

系统后台使用了开源的 openoffice 作为转换组件,国外的网站真是卡巴斯基,撸主花了好久找到了 W 和 L 下的安装包,由于文件太大,已经共享在QQ群。

配置 pom.xml 引入:

 

properties>
<openoffice.version>4.1.2</openoffice.version>
<jodconverter.version>4.3.0</jodconverter.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<!-- openoffice -->
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>unoil</artifactId>
<version>${openoffice.version}</version>
</dependency>
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>ridl</artifactId>
<version>${openoffice.version}</version>
</dependency>
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>jurt</artifactId>
<version>${openoffice.version}</version>
</dependency>
<dependency>
<groupId>org.openoffice</groupId>
<artifactId>juh</artifactId>
<version>${openoffice.version}</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-local</artifactId>
<version>${jodconverter.version}</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-core</artifactId>
<version>${jodconverter.version}</version>
</dependency>
<dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-spring-boot-starter</artifactId>
<version>${jodconverter.version}</version>
</dependency>

配置 application.properties 引入:

 

# https://github.com/sbraconnier/jodconverter
jodconverter.local.enabled=true
# 设置openOffice主目录 可省略 默认会自动读取系统安装路径
jodconverter.local.office-home=C:/Program Files (x86)/OpenOffice 4
# 开启多个openOffice进程,每个端口对应一个进程
jodconverter.local.portNumbers=8100,8200
# openOffice进程重启前的最大进程数
jodconverter.local.maxTasksPerProcess=100

我们只需要在使用中的地方引入以下代码:

 

@Resource
private DocumentConverter documentConverter;

调用API:

documentConverter.convert(fromFile).to(toFile).execute();

小结

由于前期整合了工作流,数据库上线到演示环境又各种大小写区分的问题,某云数据库面板又卡的要死,捯饬了半天,终于搞定了,深夜又撸了一点简单的部署文档,实在是肝不动了。

猜你喜欢

转载自blog.csdn.net/weixin_45132238/article/details/108620835