SanS三石 发表于 2024-5-2 01:48:47

开源文档预览项目 kkFileView (9.9k star) ,快速入门

本帖最后由 SanS三石 于 2024-5-2 01:56 编辑

kkFileView 是一款文件文档在线预览解决方案,采用流行的 Spring Boot 框架构建,易于上手和部署。该项目基本支持主流办公文档的在线预览,包括但不限于 doc、docx、xls、xlsx、ppt、pptx、pdf、txt、zip、rar,以及图片、视频、音频等格式。


1 Docker 部署
[*]拉取镜像:

[*]<!--StartFragment--><span class="hljs-comment" style="color: rgb(0, 128, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 15px; white-space: pre;"># 网络环境方便访问docker中央仓库</span><span style="color: rgb(68, 68, 68); font-family: &quot;Courier New&quot;, sans-serif; font-size: 15px; white-space: pre; background-color: rgb(245, 245, 245);">
docker pull keking/kkfileview:4.1.0

</span><span class="hljs-comment" style="color: rgb(0, 128, 0); font-family: &quot;Courier New&quot;, sans-serif; font-size: 15px; white-space: pre;"># 网络环境不方便访问docker中央仓库</span><span style="color: rgb(68, 68, 68); font-family: &quot;Courier New&quot;, sans-serif; font-size: 15px; white-space: pre; background-color: rgb(245, 245, 245);">
wget https://kkview.cn/resource/kkFileView-4.1.0-docker.tar
docker load -i kkFileView-4.1.0-docker.tar</span><!--EndFragment-->


[*]运行容器
docker run -it -p 8012:8012 keking/kkfileview:4.1.0
浏览器访问容器 8012 端口 http://127.0.0.1:8012 即可看到项目演示用首页。

2 项目接入



上传一个文件之后,点击预览,即可查看该文件预览效果。






项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的 url ,示例如下:
[*]引入 js 文件
<span class="hljs-tag" style="color: rgb(0, 0, 255);"><<span class="hljs-name">script</span> <span class="hljs-attr" style="color: rgb(255, 0, 0);">type</span>=<span class="hljs-string" style="color: rgb(163, 21, 21);">"text/javascript"</span><span class="hljs-attr" style="color: rgb(255, 0, 0);">src</span>=<span class="hljs-string" style="color: rgb(163, 21, 21);">"https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"</span>></span><span class="hljs-tag" style="color: rgb(0, 0, 255);"></<span class="hljs-name">script</span>></span>

[*]Js 代码
<span class="hljs-variable language_" style="color: rgb(0, 128, 0);">window</span>.<span class="hljs-title function_" style="color: rgb(163, 21, 21);">open</span>(<span class="hljs-string" style="color: rgb(163, 21, 21);">'http://127.0.0.1:8012/onlinePreview?url='</span>+ <span class="hljs-built_in" style="color: rgb(0, 0, 255);">encodeURIComponent</span>( <span class="hljs-title class_" style="color: rgb(163, 21, 21);">Base64</span>.<span class="hljs-title function_" style="color: rgb(163, 21, 21);">encode</span>(url) ) );


3 Mac 本地调试 & 打包本节我们介绍如何使用 Mac 电脑本地调试 ,以及根据配置按照 windows/Linux 打对应的部署包。从 Github 上下载 kkFileView :git <span class="hljs-built_in" style="color: rgb(0, 0, 255);">clone</span> git@github.com:kekingcn/kkFileView.git
kkFileView 强依赖两点:
[*]Java 1.8+
[*]LibreOffice 或 OpenOffice ( Windows下已内置,CentOS 或 Ubuntu 下会自动下载安装,MacOS 下需要自行安装)
所以 Mac 本地调试需要先安装 LibreOffice ,进入 LibreOffice 首页,下载对应 Mac 版本即可。

当我们通过 IDEA 打开 ,进入 Server 模块,执行 ServerMain 类 :


启动日志如下:

从日志我们看到:kkFileView 会启动两个 LibreOffice 进程,每个进程有独立的端口。当我们执行 maven 的 package 命令, 根据配置 windows/Linux 打对应的部署包。

4 Linux 环境部署我们将打包好的 kkFileView Linux 部署包,上传到部署目录,分别执行:<span class="hljs-comment" style="color: rgb(0, 128, 0);"># 解压缩</span>
tar -zxvf kkFileView-4.4.0-SNAPSHOT.tar.gz

<span class="hljs-comment" style="color: rgb(0, 128, 0);"># 进入 bin 目录</span>
<span class="hljs-built_in" style="color: rgb(0, 0, 255);">cd</span> bin

<span class="hljs-comment" style="color: rgb(0, 128, 0);"># 启动 </span>
./startup.sh
备注: Linux 环境首次启动会自动安装 LibreOffice 默认安装 7.5 版本。我们也可以手工安装 LibreOffice。<span class="hljs-comment" style="color: rgb(0, 128, 0);">#将 LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz上传到 home 目录下</span>
<span class="hljs-built_in" style="color: rgb(0, 0, 255);">cd</span> /home
tar -zxvf LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz
<span class="hljs-built_in" style="color: rgb(0, 0, 255);">cd</span> 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.zip2、上传到 /usr/share/fonts , 并解压缩unzip fonts.zip3、刷新字体索引mkfontscale
5 总结当我们在本地调试或者 Linux 服务器执行预览效果时,我们发现 PPT 文档文件会转换成图片的格式,比如下图:

kkFileView 本质是将文档文件转换为特定的展示文件,是一个小型的转码系统。而且转码后的文件存储都是单机模式,假如需要分布式部署,可能还是会有性能瓶颈。最后,kkFileView 相关安装包,也可以关注勇哥的公众号,回复“kk” , 即可获取 。



七夏 发表于 2024-5-2 07:09:48

眼:我会了!
手:你放屁!
话说这个公众号是你的嘛?

SanS三石 发表于 2024-5-2 16:20:20

七夏 发表于 2024-5-2 07:09
眼:我会了!
手:你放屁!
话说这个公众号是你的嘛?

不是哟 ,这文章借鉴过来的

七夏 发表于 2024-5-2 16:24:33

SanS三石 发表于 2024-5-2 16:20
不是哟 ,这文章借鉴过来的

我还以为是你的呢{:9_516:}

SanS三石 发表于 2024-5-2 22:46:09

七夏 发表于 2024-5-2 16:24
我还以为是你的呢

哈哈哈   我还没成为技术大拿

Amani 发表于 2024-5-24 11:56:09

We always keep minority spirit.
页: [1]
查看完整版本: 开源文档预览项目 kkFileView (9.9k star) ,快速入门