此項目為文件文檔在線預覽項目解決方案,對標業內付費產品有【永中office】【office365】【idocv】等,在取得公司高層同意后以Apache協議開源出來反哺社區,在此特別感謝@唐老大的支持以及@端木詳笑的貢獻。該項目使用流行的spring boot搭建,易上手和部署,基本支持主流辦公文檔的在線預覽,如doc,docx,Excel,pdf,txt,zip,rar,圖片等等
項目特性
- 支持office,pdf, cad等辦公文檔
- 支持txt,java,php,py,md,js,css等所有純文本
- 支持zip,rar,jar,tar,gzip等壓縮包
- 支持jpg,jpeg,png,gif等圖片預覽(翻轉,縮放,鏡像)
- 使用spring boot開發,預覽服務搭建部署非常簡便
- rest接口提供服務,跨平臺特性(java,php,python,go,php,....)都支持,應用接入簡單方便
- 抽象預覽服務接口,方便二次開發,非常方便添加其他類型文件預覽支持
- 最最重要Apache協議開源,代碼pull下來想干嘛就干嘛
官網及文檔
地址:https://kkfileview.keking.cn
在線體驗
請善待公共服務,會不定時停用
項目文檔(Project documentation)
- 詳細wiki文檔:https://gitee.com/kekingcn/file-online-preview/wikis/pages
- 中文文檔:https://gitee.com/kekingcn/file-online-preview/blob/master/README.md
- English document:https://gitee.com/kekingcn/file-online-preview/blob/master/README.en.md
聯系我們,加入組織
我們會用心回答解決大家在項目使用中的問題,也請大家在提問前至少Google或baidu過,珍愛生命遠離無效的交流溝通
QQ群號:613025121
文檔預覽效果
1. 文本預覽
支持所有類型的文本文檔預覽, 由于文本文檔類型過多,無法全部枚舉,默認開啟的類型如下 txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd
文本預覽效果如下
2. 圖片預覽
支持jpg,jpeg,png,gif等圖片預覽(翻轉,縮放,鏡像),預覽效果如下
3. word文檔預覽
支持doc,docx文檔預覽,word預覽有兩種模式:一種是每頁word轉為圖片預覽,另一種是整個word文檔轉成pdf,再預覽pdf。兩種模式的適用場景如下
- 圖片預覽:word文件大,前臺加載整個pdf過慢
- pdf預覽:內網訪問,加載pdf快
圖片預覽模式預覽效果如下
pdf預覽模式預覽效果如下
4. ppt文檔預覽
支持ppt,pptx文檔預覽,和word文檔一樣,有兩種預覽模式
圖片預覽模式預覽效果如下
pdf預覽模式預覽效果如下
5. pdf文檔預覽
支持pdf文檔預覽,和word文檔一樣,有兩種預覽模式
圖片預覽模式預覽效果如下
pdf預覽模式預覽效果如下
6. excel文檔預覽
支持xls,xlsx文檔預覽,預覽效果如下
7. 壓縮文件預覽
支持zip,rar,jar,tar,gzip等壓縮包,預覽效果如下
可點擊壓縮包中的文件名,直接預覽文件,預覽效果如下
8. 多媒體文件預覽
理論上支持所有的視頻、音頻文件,由于無法枚舉所有文件格式,默認開啟的類型如下
mp3,wav,mp4,flv
視頻預覽效果如下
音頻預覽效果如下
9. CAD文檔預覽
支持CAD dwg文檔預覽,和word文檔一樣,有兩種預覽模式
圖片預覽模式預覽效果如下
pdf預覽模式預覽效果如下
考慮說明篇幅原因,就不貼其他格式文件的預覽效果了,感興趣的可以參考下面的實例搭建下
快速開始
項目使用技術
- spring boot: spring boot開發參考指南
- freemarker
- redisson
- jodconverter 依賴外部環境
- redis (可選,默認不用)
- OpenOffice或者LibreOffice(Windows下已內置,Linux會自動安裝,Mac OS下需要手動安裝)
-
第一步:pull項目https://github.com/kekingcn/file-online-preview.git
-
第二步:運行FilePreviewApplication的main方法,服務啟動后,訪問http://localhost:8012/ 會看到如下界面,代表服務啟動成功
歷史更新記錄
2020年05月20日 :
- 新增支持全局水印,并支持通過參數動態改變水印內容
- 新增支持CAD文件預覽
- 新增base.url配置,支持使用nginx反向代理和使用context-path
- 支持所有配置項支持從環境變量里讀取,方便Docker鏡像部署和集群中大規模使用
- 支持配置限信任站點(只能預覽來自信任點的文件源),保護預覽服務不被濫用
- 支持配置自定義緩存清理時間(cron表達式)
- 全部能識別的純文本直接預覽,不用再轉跳下載,如.md .java .py等
- 支持配置限制轉換后的PDF文件下載
- 優化maven打包配置,解決 .sh 腳本可能出現換行符問題
- 將前端所有CDN依賴放到本地,方便沒有外網連接的用戶使用
- 首頁評論服務由搜狐暢言切換到Gitalk
- 修復url中包含特殊字符可能會引起的預覽異常
- 修復轉換文件隊列addTask異常
- 修復其他已經問題
- 官網建設:https://kkfileview.keking.cn
- 官方Docker鏡像倉庫建設:https://hub.docker.com/r/keking/kkfileview
2019年06月18日 :
- 支持自動清理緩存及預覽文件
- 支持http/https下載流url文件預覽
- 支持FTP url文件預覽
- 加入Docker構建
2019年04月08日 :
- 緩存及隊列實現抽象,提供JDK和REDIS兩種實現(REDIS成為可選依賴)
- 打包方式提供zip和tar.gz包,并提供一鍵啟動腳本
2018年01月19日 :
- 大文件入隊提前處理
- 新增addTask文件轉換入隊接口
- 采用redis隊列,支持kkFIleView接口和異構系統入隊兩種方式
2018年01月17日 :
- 優化項目結構,抽象文件預覽接口,更方便的加入更多的文件類型預覽支持,方便二次開發
- 新增英文文檔說明(@幻幻Fate,@汝輝)貢獻
- 新增圖片預覽文件支持類型
- 修復壓縮包內輪播圖片總是從第一張開始的問題
2018年01月12日 :
- 新增多圖片同時預覽
- 支持壓縮包內圖片輪番預覽
2018年01月02日 :
- 修復txt等文本編碼問題導致預覽亂碼
- 修復項目模塊依賴引入不到的問題
- 新增spring boot profile,支持多環境配置
- 引入pdf.js預覽doc等文件,支持doc標題生成pdf預覽菜單,支持手機端預覽
使用登記
如果這個項目解決了你的實際問題,可在https://gitee.com/kekingcn/file-online-preview/issues/IGSBV 登記下,如果節省了你的三方預覽服務費用,也愿意支持下的話,可點擊下方【捐助】請作者喝杯咖啡,也是非常感謝