來源:
blog.csdn.net/jxlhljh/article/details/119815808
1.項目特性
- 支持word Excel ppt,pdf等辦公文檔
- 支持txt,JAVA,php,py,md,js,css等所有純文本
- 支持zip,rar,jar,tar,gzip等壓縮包
- 支持jpg,jpeg,png,gif等圖片預覽(翻轉,縮放,鏡像)
- 支持mp3,mp4,flv等多媒體文件預覽
- 使用spring boot開發,預覽服務搭建部署非常簡便
- rest接口提供服務,跨平臺特性(java,php,Python,go,php,....)都支持,應用接入簡單方便
- 支持普通http/https文件下載url、http/https文件下載流url、ftp下載url等多種預覽源
- 提供zip,tar.gz發行包,提供一鍵啟動腳本和豐富的配置項,方便部署使用
- 提供Docker鏡像發行包,方便在容器環境部署
- 抽象預覽服務接口,方便二次開發,非常方便添加其他類型文件預覽支持
- 最最重要Apache協議開源,代碼pull下來想干嘛就干嘛
2.部署過程
部署方式,可以直接下載二進制步驟,也可以通過docker直接拉取,還可以通過源碼編譯進行,下面分別說明
前提條件:Jdk需要先安裝設置好,kkFileWiew是Java開發的,Jdk必需。
tar -xvf jdk-8u191-linux-x64.tar.gz -C /usr/local
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/jdk1.8.0_191/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EOF
source /etc/profile
[root@localhost testuser]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
2.1 二進制下載部署文件進行部署
1.從碼云發行版本下載最新版發行包,這里只以linux為例,一般服務器都是linux的,如果用windows也可,看官網說明進行。
2.解壓kkFileView-x.x.x文件(Windows用.zip包,Linux/macOS用.tar.gz包),如:
tar xvf kkFileView-4.0.0.tar.gz -C /opt/
3.運行startup腳本(Windows下以管理員身份運行startup.bat,Linux以root用戶運行startup.sh)
cd /opt/kkFileView-4.0.0/bin
注:linux下kkFileWiew需要Libreoffice的支持,因此startup.sh會判斷系統是否已安裝LibreOffice,如果沒有安裝,將自動下載安裝,因此需要有互聯網環境的支持,如果是內網的機器,可以考慮在一臺有互聯網環境下的機器上搭建一個http代理服務器,然后通過export命令設置通過代理下載,如在192.168.56.1上搭建了一個http代理(設置了賬號和密碼),可以通過如下命令執行,然后再執行startup.sh
export http_proxy=http://admin:admin123@192.168.56.1:1080
export https_proxy=http://admin:admin123@192.168.56.1:1080
export no_proxy='127.0.0.1'
運行startup.sh
[root@localhost bin]# ./startup.sh
Using KKFILEVIEW_BIN_FOLDER /opt/kkFileView-4.0.0/bin
Installing OpenOffice
Loaded plugins: fastestmirror
Determining fastest mirrors
........略
Complete!
Loaded plugins: fastestmirror
No such command: installlocalho. Please use /usr/bin/yum --help
install finshed...
Starting kkFileView...
Please execute ./showlog.sh to check log for more information
You can get help in our official homesite: https://kkFileView.keking.cn
If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers
4.按步驟3的提示執行./showlog.sh查看啟動日志,報錯,需要解決office.home的問題:
./startup.sh報錯,不是一鍵部署嗎?官網直接說.startup.sh難道有坑?查看startup.sh中,定定了幾個目錄/opt/libpreoffice*,根據官網說的,4.0版本后依賴libpreoffice,繼續看/opt目錄下,沒看到libpreoffice目錄存在,說明libpreoffice未安裝成功。
/opt目錄下,沒看到libpreoffice目錄存在,說明libpreoffice未安裝成功,如下:
[root@localhost opt]# ls -hl /opt/
total 0
drwxr-xr-x. 5 root root 42 Aug 20 13:05 kkFileView-4.0.0
繼續看,發現沒有安裝的情況是要執行install.sh的
install.sh如下
看著像是會執行安裝的,cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS查看,也確實是下載了很多包
手工再執行一次安裝看看
cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS
yum localinstall *.rpm -y
執行成功后再重啟.startup.sh,發現能正常啟動了。
[root@localhost RPMS]# cd /opt/kkFileView-4.0.0/bin/
[root@localhost bin]# ./startup.sh
5.瀏覽器訪問本機8012端口,如:http://192.168.56.101:8012
6.使用
使用較簡單:從步驟4中可以看出,通過傳遞一個經過base64位的外部文件url地址給kkFileView程序即可如:
http://192.168.56.101:8012/onlinePreview?url=aHR0cDovLzE5Mi4xNjguNTYuMTAxOjgwMTIvZGVtby9hcHBsaWNhdGlvbi5wcm9wZXJ0aWVz
2.2 docker方式部署
##拉取鏡像
docker pull keking/kkfileview:v4.0.0 ##官網拉取
docker pull 192.168.56.1:6000/keking/kkfileview:v4.0.0 ##通過私庫拉取(有的話)
##運行(第一次)
docker run -itd -p 8012:8012 192.168.56.1:6000/keking/kkfileview:v4.0.0 ##有私庫的情況下。
或
docker run -itd -p 8012:8012 keking/kkfileview:v4.0.0
##查看
docker ps -a
docker exec -it 1be9d7d654dc /bin/bash
##停止與啟動,
docker stop 容器id
docker start 容器id
2.3 通過源代碼編繹部署
1.下載代碼,以4.0.0版本為例
git clone https://gitee.com/kekingcn/file-online-preview.git
##切換到v4.0.0版本
git checkout -b v4.0.0 origin/v4.0.0
2.編譯
mvn clean package -Dmaven.test.skip=true
3.編譯成功后,在file-online-previewservertarget目錄下找到對應的二進制文件
4.再走一遍2.1步驟中的二進制部署方式即可。
3.部分配置說明
通過修改Application.properties來修改配置,需要重啟程序如:
3.1 server.context-path
默認的訪問路徑為/onlinePreview,通過server.context-path進行修改,
更詳細的配置參見官網的配置說明:
https://kkfileview.keking.cn/zh-cn/docs/config.html
4.預覽亂碼字體問題
大部分Linux系統上并沒有預裝中文字體或字體不全,需要把常用字體拷貝到Linux服務器上,具體操作如下:
下載如下字體包http://kkfileview.keking.cn/fonts.zip文件解壓完整拷貝到Linux下的 /usr/share/fonts目錄。然后依次執行mkfontscale 、mkfontdir 、fc-cache使字體生效,可能需要重啟kkFileView程序
unzip -o -d /usr/share/fonts/ fonts.zip
##解壓多了一層,需要移動一下到上一層的fonts下面,然后再刪除zhFonts文件夾
mv /usr/share/fonts/zhFonts/* /usr/share/fonts/
cd /usr/share/fonts/
mkfontscale
mkfontdir
fc-cache
如果報mkfontscale命令不存在執行
yum install mkfontscale -y
解決亂碼前:
解決亂碼后:
5.預覽展示
1.properties
2.pdf
3.word
word也是通過轉換成pdf再瀏覽的
6.附件
鏈接:https://pan.baidu.com/s/1sXYjx1_16I5JFGyxEja_bA 提取碼:kixv
7.其他說明
7.1使用openoffice進行轉換
有時發現liboffice并沒有傳說官網中說的那么穩定與好,可能是我沒用好,我自己轉換試驗是覺得openoffice更穩定,轉換大于10M的word也順利,反而用官網推薦的liboffice轉換,常常崩并把office進程給搞沒了,所以我這邊一般是使用openoffice進行轉換。
不需要改什么,就是直接再安裝openoffice4就好,安裝過程見
https://blog.csdn.net/jxlhljh/article/details/117041944
修改application.properties中的配置
#openoffice home路徑
#office.home = C:\Program Files (x86)\OpenOffice 4
#office.home = ${KK_OFFICE_HOME:default}
office.home = /opt/openoffice4
然后進行kkfileView的重啟,kkfileView啟動時發現/opt/openoffice4目錄有安裝了openoffice4會以openoffice4進行啟動。
7.2 libXext.so.6: cannot open shared object file: No such file or directory
#/opt/openoffice4/program/soffice.bin: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory
#先執行:
yum install -y libXext.x86_64
##然后
cp -a /usr/lib64/libXext.so.6 /opt/openoffice4/program/