kkFileView 预览环境搭建
文章目录
0、概述
KKFileView是基于SpringBoot和OpenOffice编写的开源的文件转换和在线预览工具,但目前官方已经隐藏了已经编译好的版本,现在是需要加他们的付费群才可以拿,官网只能拿到源码,然后我就自己拿源码用maven编译了。
kkFileView支持的格式:doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本及代码如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore。
官网:https://kkfileview.keking.cn/zh-cn/docs/production.html
1、准备
kkfileview需要的几个东西:Java、OpenOffice或LiberOffice、编译好的kkfileview包、字体包。除了java,我都有传到百度云,链接:https://pan.baidu.com/s/1_838zD_aLaqmpb4V4Sz8vQ 提取码: b67s
1.1 kkfileview
- 我上传在了CSDN,不需要C币,链接:https://download.csdn.net/download/qq_28304687/18805628。
- 官网有一个隐藏的网址可以下载旧版本,比较旧,但是免费的:https://kkfileview.keking.cn/kkFileView-2.2.1.tar.gz
1.2 OpenOffice
我这里测试用的OpenOffice,没试过LiberOffice,OpenOffice还可以,各种格式都兼容,口碑较好。
- 其实可以不预先下载,因为在已经编译好的kkfileview包里有个脚本,执行安装时,会自动下载(前提是能联网)。
- 官网: http://www.openoffice.org/zh-cn/download/
- sourceforge: https://sourceforge.net/projects/openofficeorg.mirror/files/
1.3 fonts.zip
可以在linux的使用的中文字体包,防止乱码,这个随便在什么时候装。
2、安装
2.1 Java
有条件最好配环境联网吧,依赖挺多的。
yum install java
通过yum安装的默认路径为:/usr/lib/jvm
在/etc/profile
的最后加上java的环境变量:
JAVA_HOME=/usr/java/jre1.8.0_211
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
然后执行(注意最前面的点.)
. /etc/profile
查看java的版本,看是否安装成功。
2.2 OpenOffice
这步或许可以省略,也可以先安装,不冲突。
1、下载的包和解压后的目录zh-CN,我们下的是中文包。
2、进入安装,主要是RPMS下的
cd zh-CN/RPMS/
rpm -ivh *.rpm
3、安装完后,再进入RPMS的下一层目录,只要选择一个即可,我们选择redhat即可。
cd zh-CN/RPMS/desktop-integration
rpm -ivh openoffice4.1.9-redhat-menus-4.1.9-9805.noarch.rpm
4、安装完启动,启动命令如下,不加&就只是临时启动:
/opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
启动后,可以使用ps查看进程是否启用
2.3 kkfileview
想要最新的自己编译的,自己看官网用maven打包,这里我已经打包好了。进入/root/kkFileView-3.5.1/bin
(我是直接放在/root下了)直接执行sh startup.sh
即可。
为什么说可以不装openoffice,看我们刚刚执行的脚本
其中的install.sh,就是它会在DIR_HOME的目录里找是否有soffice.bin这个文件,有就当你装了,就可以看到刚刚我们执行sh startup.sh
里输出了如下信息:
Detected office component has been installed in /opt/openoffice4
如果没有就会执行install.sh
,内容如下,可知会自动下载:
此时soffice我们已经开启了,startup.sh脚本也执行了,在浏览器访问ip:8012
会跳转到http://ip:8012/index
,界面如下:
里面的txt是我上传测试的文件,可以预览,上传的文件存在`/root/kkFileView-3.5.1/file目录下。
2.4 fonts.zip
1、检查是否有fontconfig这个包,没有就安装
yum install fontconfig
2、将fonts.zip解压,将解压后得到的整个zhFonts目录放入 /usr/share/fonts下,或者干脆放到 /usr/share/fonts下解压:
3、然后分别执行这三条命令
>>> mkfontscale
>>> mkfontdir
>>> fc-cache
3、模拟接入项目、前端预览
部署起来的kkfileview演示首页的接入说明有说怎么做:
因为想模拟一下的,但是没前端环境,没关系我们有浏览器,打开console控制台,encodeURIComponent是js自带的方法,base64用其他方法代替一下,在console输入回车:
>>> encodeURIComponent(btoa(encodeURI('http://ip/download/a/百度停用词列表.txt')))
"aHR0cDovLzE5Mi4xNjguMzMuMjE0L2Rvd25sb2FkL2EvJUU3JTk5JUJFJUU1JUJBJUE2JUU1JTgxJTlDJUU3JTk0JUE4JUU4JUFGJThEJUU1JTg4JTk3JUU4JUExJUE4LnR4dA%3D%3D"
那么预览的地址为:
http://192.168.33.214:8012/onlinePreview?url=aHR0cDovLzE5Mi4xNjguMzMuMjE0L2Rvd25sb2FkL2EvJUU3JTk5JUJFJUU1JUJBJUE2JUU1JTgxJTlDJUU3JTk0JUE4JUU4JUFGJThEJUU1JTg4JTk3JUU4JUExJUE4LnR4dA%3D%3D
说明一下,url是需要在浏览器可以打开的,可以预览或者下载(浏览器是可以预览某些文件的),临时使用我们借用Nginx,在配置文件里加入类似代码,然后重启nginx服务:
location /download {
alias /tmp/;
}
/download是映射目录,在浏览器可以访问,/tmp是我们在环境存放的真实路径,该下的文件可以被/download访问,比如/tmp下有文件/tmp/a/b.txt,则浏览器访问:http://ip/download/a/b.txt
,默认端口80。
参考链接:
1、https://my.oschina.net/u/232595/blog/2986127
2、https://blog.csdn.net/qq_44322555/article/details/115193593
3、https://blog.csdn.net/dndndnnffj/article/details/112000034
4、https://www.cnblogs.com/archerhao/p/11423571.html
本文来自博客园,作者:苏酒酒,转载请注明原文链接:https://www.cnblogs.com/sujiujiu/p/15370006.html