【springboot 项目实现各种文档预览(kkfilevilew)】

序言

在日常工作中经常遇到预览word、excel、ppt、压缩包等格式文档,自己开发预览功能,不禁涵盖格式不全,而且费时费力,这里给大家推荐第三方服务 kkfileview 官方链接: [https://kkfileview.keking.cn/zh-cn/index.html](https://kkfileview.keking.cn/zh-cn/index.html)

如何使用?

在安装 kkfileview 之前,我们先要在程序所使用的服务器上安装openOffice或LiberOffice,kkfileview 服务需要用到其中之一。

安装openoffice

1、windows 系统安装:之前有篇文章写了安装步骤
2、linux系统:可以去网上搜索openoffice 安装教程,这类的文章还是比较多的

部署kkfileview 服务

部署kkfileview服务其实很简单,在kkfileview 官方页面部署指南中就有写:

服务器环境要求

1、Java: 1.8+
2、OpenOffice或LiberOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

部署运行

个人推荐使用docker容器运行,因为比较方便
一、 物理机或虚拟机上运行
1、从 码云发行版本 下载最新版发行包
2、解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包)
3、打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh)
4、浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首页

二、 Docker容器环境环境运行
1、拉取镜像
docker pull keking/kkfileview
2、运行
docker run -it -p 8012:8012 keking/kkfileview
3、浏览器访问容器8012端口 http://xxx.xxx.xxx.xxx:8012 即可看到项目演示用首页

java项目接入并使用

1、3.x.x 版本

// 3.x.x 版本使用
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)));

2、2.x.x 及以下版本

// 2.x.x 及以下版本使用
var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(previewUrl));

博主使用方式

下面为博主项目中使用的,因为各种考虑,把预览接口所要使用接口路径后台处理返回给前端,以上两种方式是前端直接调用

1、前端调用代码

// 前端调用代码
var previewUrl = this.pathResult.httpPath;
window.open(this.pathResult.kkFileViewPath + encodeURIComponent(Base64.encode(previewUrl)));

2、后台处理

	// 示例
	//这里为kkfileview 部署的调用路径,将 ip 换为自己的服务器 ip 就可以
	private String kkFileViewPath = "http://xxx.xx.x.xxx:8012/onlinePreview?url=";
	
    public PathResult previewToPath(String uuid, String fileName) {
    	//返回给前端的对象
        PathResult pathResult = new PathResult();
        //这里为自己部署的kkfileview 的访问地址
        pathResult.setKkFileViewPath(kkFileViewPath );
        //这里存放实际文件路径, /download/fileName 为我自己的下载接口返回文件流,如果有自己的文件路径可以直接替换
        pathResult.setHttpPath(ServletUriComponentsBuilder.fromCurrentContextPath().path("/download/").toUriString() +fileName);
        return pathResult;
    }

总结

其实使用起来很方便,目前尝试出了有几种压缩文件不能预览,其他的文件基本都可以预览。kkfileView 相对方便了很多人,之前博主也自己开发过预览功能,但是自我感觉相对缺陷比较大,很多都不支持预览,果断改用kkfileView 现在来看支持目前需求。

结语

不是职业博主,只是记录自己用到的一些技术点或者问题相关的解决办法,以便于以后用到的时候查看,顺便分享。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值