kkFileView 是一款文件文档在线预览解决方案,采用流行的 Spring Boot 框架构建,易于上手和部署。
该项目基本支持主流办公文档的在线预览,包括但不限于 doc、docx、xls、xlsx、ppt、pptx、pdf、txt、zip、rar,以及图片、视频、音频等格式。
- 拉取镜像:
1
2docker pull keking/kkfileview:4.1.0
3
4
5wget https://kkview.cn/resource/kkFileView-4.1.0-docker.tar
6docker load -i kkFileView-4.1.0-docker.tar
- 运行容器
1docker run -it -p 8012:8012 keking/kkfileview:4.1.0
浏览器访问容器 8012 端口 http://127.0.0.1:8012
即可看到项目演示用首页。
上传一个文件之后,点击预览,即可查看该文件预览效果。
项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的 url ,示例如下:
- 引入 js 文件
1<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>
- Js 代码
1window.open('http://127.0.0.1:8012/onlinePreview?url='+ encodeURIComponent( Base64.encode(url) ) );
本节我们介绍如何使用 Mac 电脑本地调试 ,以及根据配置按照 windows/Linux 打对应的部署包。
从 Github 上下载 kkFileView :
1git clone git@github.com:kekingcn/kkFileView.git
kkFileView 强依赖两点:
- Java 1.8+
- LibreOffice 或 OpenOffice ( Windows下已内置,CentOS 或 Ubuntu 下会自动下载安装,MacOS 下需要自行安装)
所以 Mac 本地调试需要先安装 LibreOffice ,进入 LibreOffice 首页,下载对应 Mac 版本即可。
当我们通过 IDEA 打开 ,进入 Server 模块,执行 ServerMain 类 :
启动日志如下:
从日志我们看到:kkFileView 会启动两个 LibreOffice 进程,每个进程有独立的端口。
当我们执行 maven 的 package 命令, 根据配置 windows/Linux 打对应的部署包。
我们将打包好的 kkFileView Linux 部署包,上传到部署目录,分别执行:
1
2tar -zxvf kkFileView-4.4.0-SNAPSHOT.tar.gz
3
4
5cd bin
6
7
8./startup.sh
备注: Linux 环境首次启动会自动安装 LibreOffice 默认安装 7.5 版本。
我们也可以手工安装 LibreOffice。
1
2cd /home
3tar -zxvf LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz
4cd LibreOffice_7.5.3.2_Linux_x86-64_rpm/RPMS/
5yum -y localinstall *.rpm
手工安装完成后,可以通过如下的命令验证是否正确:
1libreoffice7.5 --version
启动 kkFileView 并不意味着配置的结束,因为还需要最后一步:安装字体。
1、下载字体
1wget http:
2、上传到 /usr/share/fonts , 并解压缩
1unzip fonts.zip
3、刷新字体索引
1mkfontscale
2mkfontdir
3fc-cache
当我们在本地调试或者 Linux 服务器执行预览效果时,我们发现 PPT 文档文件会转换成图片的格式,比如下图:
kkFileView 本质是将文档文件转换为特定的展示文件,是一个小型的转码系统。而且转码后的文件存储都是单机模式,假如需要分布式部署,可能还是会有性能瓶颈。
最后,kkFileView 相关安装包,也可以关注勇哥的公众号:勇哥Java实战,回复“kk” , 即可获取 。
如果我的文章对你有所帮助,还请帮忙点赞、在看、转发一下,你的支持会激励我输出更高质量的文章,非常感谢!