常见文件在线预览方案深度解析

从事计算机行业十余年,酷爱读书,希望通过好书让更多的人成长。欢迎关注个人公众号:码农读书笔记。

文章正文

项目说明

项目介绍

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

这个项目整合了众多的第三方中间件,可以将常用的办公文件格式实现在线预览。本文针对 kkFileView 的源码进行讲解,对每一种格式的预览具体实现方式进行详细说明。

基本原理

  1. office 文档使用 jodconverter 转化为 pdf 进行预览。
  2. 媒体文件(包括音频视频)直接使用第三方 js 插件预览。视频分 H5 流媒体及比较老的 flv 格式,采用不同的 js 插件实现预览。
  3. cad 文件使用第三方工具转换为 pdf 预览。
  4. pdf 直接页面预览,也可以转换为图片进行预览。
  5. 压缩包解压后显示列表的树形结构。
  6. 纯文本文件直接下载后显示。
  7. 图片直接显示进行预览。

代码说明

代码结构

整体项目分两个包,其中 jodconverter-core 包是利用 openoffice(或 LibraOffice)功能,将 office 类型文件转换成 pdf 格式进行预览显示。

1. jodconverter-core

这个包是预览 office 的核心包,最原始的版本在 github 上已经 8 年没有维护了。

仓库地址:https://github.com/sbraconnier/jodconverter

后来有人 fork 后进行了扩展,扩展版本一直都有维护。

仓库地址:https://github.com/mirkonasato/jodconverter

2. jodconverter-web

本项目的的功能代码,下面会针对每个具体预览功能进行详细说明。

使用的第三方包

为了实现后台转化,本项目使用了很多第三方的插件,重要的几个列举如下:

  • org.hyperic.sigar:获得系统信息
  • freemarker:后台页面模板
  • jodconvertner-core:office 文件转换成 pdf 文件
  • org.apache.commons.compress:解压缩 zip 和 7z 文件
  • com.github.junrar:解压缩 jar 文件
  • org.apache.pdfbox:pdf 文件转化为图片
  • com.aspose.cad:cad 文件转化为 pdf 文件
  • gitalk:github 评论插件
  • flv.js:显示 flash 文件
  • plyr.js:显示音视频媒体文件
  • pdf.js:显示 pdf 文件
  • jquery.ztree.core.js:显示解压缩后的文件目录
  • watermark.js:显示水印
  • loadlazy.js:懒加载图片列表

各种格式的预览方法

系统提供两种预览方式:onlinePreview 和 picturesPreview。具体的预览 URL 地址:

http://[IP]:[PORT]/onlinePreview?url=[URL] 
office 预览

首选需要通过服务的方式将 openoffice 启动,启动命令:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

之后,通过将 office 文件转化成 pdf 文件来实现预览。

调用代码:


                            作者正在撰写中...
                        
隐藏内容 支付可见
内容互动
写评论
加载更多
评论文章
¥2.99 购买
× 订阅 Java 精选频道
¥ 元/月
订阅即可免费阅读所有精选内容