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

1.2 OpenOffice

我這里測試用的OpenOffice,沒試過LiberOffice,OpenOffice還可以,各種格式都兼容,口碑較好。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM