開源文件預覽專案 kkFileView (9.9k star) ,快速入門

勇哥编程游记發表於2024-05-01

kkFileView 是一款檔案文件線上預覽解決方案,採用流行的 Spring Boot 框架構建,易於上手和部署。

該專案基本支援主流辦公文件的線上預覽,包括但不限於 doc、docx、xls、xlsx、ppt、pptx、pdf、txt、zip、rar,以及圖片、影片、音訊等格式。

1 Docker 部署

  • 拉取映象:
# 網路環境方便訪問docker中央倉庫
docker pull keking/kkfileview:4.1.0

# 網路環境不方便訪問docker中央倉庫
wget https://kkview.cn/resource/kkFileView-4.1.0-docker.tar
docker load -i kkFileView-4.1.0-docker.tar
  • 執行容器
docker run -it -p 8012:8012 keking/kkfileview:4.1.0

瀏覽器訪問容器 8012 埠 http://127.0.0.1:8012 即可看到專案演示用首頁。

2 專案接入

上傳一個檔案之後,點選預覽,即可檢視該檔案預覽效果。

專案內需要預覽檔案時,只需要呼叫瀏覽器開啟本專案的預覽介面,並傳入須要預覽檔案的 url ,示例如下:

  1. 引入 js 檔案
<script type="text/javascript"  src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>
  1. Js 程式碼
window.open('http://127.0.0.1:8012/onlinePreview?url='+ encodeURIComponent( Base64.encode(url) ) );

3 Mac 本地除錯 & 打包

本節我們介紹如何使用 Mac 電腦本地除錯 ,以及根據配置按照 windows/Linux 打對應的部署包。

從 Github 上下載 kkFileView :

git clone git@github.com:kekingcn/kkFileView.git

kkFileView 強依賴兩點:

  1. Java 1.8+
  2. LibreOffice 或 OpenOffice ( Windows下已內建,CentOS 或 Ubuntu 下會自動下載安裝,MacOS 下需要自行安裝)

所以 Mac 本地除錯需要先安裝 LibreOffice ,進入 LibreOffice 首頁,下載對應 Mac 版本即可。

當我們透過 IDEA 開啟 ,進入 Server 模組,執行 ServerMain 類 :

啟動日誌如下:

從日誌我們看到:kkFileView 會啟動兩個 LibreOffice 程序,每個程序有獨立的埠。

當我們執行 maven 的 package 命令, 根據配置 windows/Linux 打對應的部署包。

4 Linux 環境部署

我們將打包好的 kkFileView Linux 部署包,上傳到部署目錄,分別執行:

# 解壓縮
tar -zxvf kkFileView-4.4.0-SNAPSHOT.tar.gz

# 進入 bin 目錄
cd bin

# 啟動 
./startup.sh

備註: Linux 環境首次啟動會自動安裝 LibreOffice 預設安裝 7.5 版本。

我們也可以手工安裝 LibreOffice。

#將 LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz上傳到 home 目錄下
cd /home
tar -zxvf LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz
cd LibreOffice_7.5.3.2_Linux_x86-64_rpm/RPMS/
yum -y localinstall *.rpm

手工安裝完成後,可以透過如下的命令驗證是否正確:

libreoffice7.5 --version

啟動 kkFileView 並不意味著配置的結束,因為還需要最後一步:安裝字型

1、下載字型

wget http://kkfileview.keking.cn/fonts.zip

2、上傳到 /usr/share/fonts , 並解壓縮

unzip fonts.zip

3、重新整理字型索引

mkfontscale
mkfontdir
fc-cache

5 總結

當我們在本地除錯或者 Linux 伺服器執行預覽效果時,我們發現 PPT 文件檔案會轉換成圖片的格式,比如下圖:

kkFileView 本質是將文件檔案轉換為特定的展示檔案,是一個小型的轉碼系統。而且轉碼後的檔案儲存都是單機模式,假如需要分散式部署,可能還是會有效能瓶頸。

最後,kkFileView 相關安裝包,也可以關注勇哥的公眾號,回覆“kk” , 即可獲取 。


如果我的文章對你有所幫助,還請幫忙點贊、在看、轉發一下,你的支援會激勵我輸出更高質量的文章,非常感謝!

相關文章