在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

开源在线文档预览解决方案kkFileView

开源项目记录 清风 1236℃ 0评论

背景

因需要进行文档在线预览,所以才有以下内容。因付费方案不在选择范围,所以只能寻求免费开源的解决方案。经过查找发现除了LibreOffice OnlyOfficekkFileView以外并没有发现其他可用的方案,也许是自己原因没有找到其他开源解决方案吧!由于没有在线编辑的需求,经过对比kkFileView部署以及使用极其简单,所以就选择了kkFileView

kkFileView

kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等

开源在线文档预览解决方案kkFileView-第0张图片

项目特性

开源在线文档预览解决方案kkFileView-第1张图片
  • 使用spring boot开发,预览服务搭建部署非常简便
  • rest接口提供服务,跨平台特性(java,php,python,go,php,.net….)都支持,应用接入简单方便
  • 支持普通http/https文件下载url、http/https文件下载流url、ftp下载url等多种预览源
  • 提供zip,tar.gz发行包,提供一键启动脚本和丰富的配置项,方便部署使用
  • 提供Docker镜像发行包,方便在容器环境部署
  • 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持

目前支持的文件类型如下:

  • 支持 doc, docx, xls, xlsx, xlsm, ppt, pptx, csv, tsv, dotm, xlt, xltm, dot, dotx,xlam, xla 等 Office 办公文档
  • 支持 wps, dps, et, ett, wpt 等国产 WPS Office 办公文档
  • 支持 odt, ods, ots, odp, otp, six, ott, fodt, fods 等OpenOffice、LibreOffice 办公文档
  • 支持 vsd, vsdx 等 Visio 流程图文件
  • 支持 wmf, emf 等 Windows 系统图像文件
  • 支持 psd 等 Photoshop 软件模型文件
  • 支持 pdf ,ofd, rtf 等文档
  • 支持 xmind 软件模型文件
  • 支持 bpmn 工作流文件
  • 支持 eml 邮件文件
  • 支持 epub 图书文档
  • 支持 obj, 3ds, stl, ply, gltf, glb, off, 3dm, fbx, dae, wrl, 3mf, ifc, brep, step, iges, fcstd, bim 等 3D 模型文件
  • 支持 dwg, dxf 等 CAD 模型文件
  • 支持 txt, xml(渲染), md(渲染), java, php, py, js, css 等所有纯文本
  • 支持 zip, rar, jar, tar, gzip, 7z 等压缩包
  • 支持 jpg, jpeg, png, gif, bmp, ico, jfif, webp 等图片预览(翻转,缩放,镜像)
  • 支持 tif, tiff 图信息模型文件
  • 支持 tga 图像格式文件
  • 支持 svg 矢量图像格式文件
  • 支持 mp3,wav,mp4,flv 等音视频格式文件
  • 支持 avi,mov,rm,webm,ts,rm,mkv,mpeg,ogg,mpg,rmvb,wmv,3gp,ts,swf 等视频格式转码预览

项目地址

GiteeGithub

部署

官方提供多种部署方式,其中包括使用Docker。因目前项目也是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 即可看到项目演示用首页

使用docker-compose


version: '3.4'

services:

  smart-document-service:
    container_name: smart-document-service
    image: keking/kkfileview:4.1.0
    restart: always
    ports:
      - "8012:8012"
    networks: 
      - smart-network-v1
    environment:
     - TZ=Asia/Shanghai
     - KK_FILE_DIR=/data/file  # 文件路径地址
      #KK_BASE_URL: "https://aa.bb.com/preview/"  # 配置nginx方向代理转发需要用到,详见官方文档
     - KK_CONTEXT_PATH=/previewDocuentFile/  # 配置nginx方向代理转发需要用到,详见官方文档
     - KK_OFFICE_PREVIEW_SWITCH_DISABLED=true  # 是否关闭预览切换,默认开启,如果需要关闭,设置为true
    volumes:
      - /data/smart/document_service/file:/data/file

networks:
  smart-network-v1:
    driver: bridge

项目接入

Nginx转发

由于以上内容更改了KK_CONTEXT_PATH,所以我们的转发内容是更改后的内容previewDocuentFile。其实不用Nginx转发也是可以的,由于项目的对外入口就一个,就有了这个Nginx转发的需求。


   location /previewDocuentFile {
          proxy_pass http://smart-document-service:8012;
   }

当您的项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的url,示例如下:


<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)));

以上方式打开新页面进行预览,如果不开新页面使用iframe也是一样的。

在线文档预览效果
更多信息参考官方网站https://kkview.cn



转载请注明:清风亦平凡 » 开源在线文档预览解决方案kkFileView

喜欢 (0)or分享 (0)
支付宝扫码打赏 支付宝扫码打赏 微信打赏 微信打赏
头像
发表我的评论
取消评论

CAPTCHA Image
Reload Image
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址