文章目錄
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