kkfileview正确配置姿势

6,975 阅读2分钟

最近项目遇到了需要文件在线预览的需求,看来看去瞄头对准了kkfileview,配置再此,希望帮到后面的人,也感谢作者的慷慨!

github:github.com/kekingcn/kk…

kkfileview官网:kkfileview.keking.cn/zh-cn/index…

(1)环境要求

Java: 1.8+

OpenOffice或LiberOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

(2)环境配置

在服务器运行如下代码:

  yum install -y libXext.x86_64
  yum groupinstall -y  "X Window System"

(3)过程

image.png 使用命令解压

tar -zxvf kkFileView-4.0.0.tar.gz

解压后生成目录,路径定位到/root/kkFileView-4.0.0/bin(我这里解压到root下),

执行启动命令

sh startup.sh

4.0.0版本集成了office插件,但是我这里依旧报了错,找不到office组件,请确认office.home配置是否有误,以下附上详细解决方法

官网下载libreoffice,我这里版本定位到7.1.4.2,

官网仓库地址:downloadarchive.documentfoundation.org/libreoffice…

idm添加连接:downloadarchive.documentfoundation.org/libreoffice… 如果访问不到,自行福强

上传至服务器,

image.png 执行解压命令

tar -zxvf LibreOffice_7.1.4.2_Linux_x86-64_rpm.tar.gz

路径定位到RPMS,执行安装

cd /root/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS
yum localinstall *.rpm

安装成功后会在 /opt/ 下生产一个 libreoffice7.1 的文件夹 然后执行如下命令

 /opt/libreoffice7.1/program/soffice --headless --accept="socket,host=127.0.0.1,port=2001;urp;" --nofirststartwizard &

由于更换了office,需要将配置中的office.home进行更换 目录定位到/root/kkFileView-4.0.0/config,将application.properties下载进行更改

office.home = /opt/libreoffice7.1

处理后重新上传即可!!!

最后定位到目录 /root/kkFileView-4.0.0/bin,执行

 sh startup.sh

关于乱码

官网是有提到解决办法的, 文档再此:kkfileview.keking.cn/zh-cn/docs/…

乱码的解决方案是给linux安装字体即可 字体包官网已经提供,下载,解压,上传,安装,命令如下

上传至/usr/share/fonts目录下

image.png

修改字体权限,执行

 cd /usr/share/fonts/ 
 sudo chmod -R 755 zhFonts

建立字体索引信息,更新字体缓存

mkfontscale && mkfontdir && fc-cache -fv

如执行命令时提示到类似mkfontscale: command not found,自行bd搜索安装命令即可

关于配置nginx

官网中有指导的说明如下

image.png 操作时,发现server.context-path = /preview应该是旧的配置方式,在我是用的4.0.0版本中的application.properties没有发现配置的对应项,估计是官网没有更新,正确的的配置方式是

image.png 即可, 需注意的是,配置nginx后,本机ip:8012端口的方式无法在访问根页面,需使用nginx代理ip:8012/preview的方式访问

image.png

最后

项目访问地址:ip:8012访问即可

image.png

如何接入vue项目

接入vue项目时,这里需要说明的是其中提到的base64Encode(url),安装插件js-base64即可,

npm i js-base64
import Base64 from 'js-base64';
Vue.prototype.$Base64 = require('js-base64').Base64;

使用时

this.$Base64(url)