KKFileView使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,Excel,pdf,txt,zip,rar,图片等等。
项目特性:
- 支持word excel ppt,pdf等办公文档
- 支持txt,java,php,py,md,js,css等所有纯文本
- 支持zip,rar,jar,tar,gzip等压缩包
- 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)
- 支持mp3,mp4,flv等多媒体文件预览
- 使用spring boot开发,预览服务搭建部署非常简便
- rest接口提供服务,跨平台特性(java,php,python,go,php,…)都支持,应用接入简单方便
- 支持普通http/https文件下载url、http/https文件下载流url、ftp下载url等多种预览源
- 提供zip,tar.gz发行包,提供一键启动脚本和丰富的配置项,方便部署使用
- 提供Docker镜像发行包,方便在容器环境部署
- 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持
- 最最重要Apache协议开源,代码pull下来想干嘛就干嘛
官网地址: KKFileView
本次教程使用Centos搭建KKFileView实现在线预览各种附件的功能。
1 搭建
1 去官网下载kkFileView-2.2.1.tar.gz
2 上传至linux服务器内后解压运行即可(ps:会联网下载安装openOffice,如果服务器没网,则需要先手动安装后修改配文件)
3 由于linux服务器大多没有安装中文字体,所以生成的文档会出现中文乱码的问题,因此我们需要在linux内安装中文字体,具体操作如下:
下载 :fonts.zip后放入 /usr/share/fonts下解压,然后执行 mkfontscale 、mkfontdir 、fc-cache三个命令,如果没有这3个命令需要yum安装(ps 听说改完字体后需要服务器重启后才会生效)
yum install mkfontscale
yum install fontconfig
如果重启后没有生效,把/usr/share/fonts 下面的字体文件改为可执行
chmod 755 *.ttf
然后再
mkfontscale
mkfontdir
,
fc-cahce
reboot
重启
2 使用
首先要实现预览功能,后端肯定要有一个文件下载的接口
@ApiOperation("下载在线附件接口")
@GetMapping("/watch/{fileId}/{fileName}")
//filename虽然在在里没有用到,当必须要有,因为kkfile通过fileName判断文件类型进而转换文件的
//filename的格式示例:aa.doc, aa.html, aa.txt, aa.pdf .....
public void watch(@ApiParam("文件id")@PathVariable String fileId, HttpServletResponse response) throws IOException {
systemFileController.downloadFile(fileId,response);
}
3通过访问kkFileView实现文件在线预览:
http://ip:port/onlinePreview?url=http://192.168.1.134:9746/watch/297446455118008320/test.docx&watermarkTxt=要添加的水印
目前暂时只研究到这里,后面会继续补充。