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

news/2024/10/14 18:18:59

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” , 即可获取 。


如果我的文章对你有所帮助,还请帮忙点赞、在看、转发一下,你的支持会激励我输出更高质量的文章,非常感谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26679.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

模拟集成电路设计系列博客——6.2.4 电流模式转换器

6.2.4 电流模式转换器 电流模式D/A转换器与电阻型转换器非常类似,但是可以用于更高速的应用。其基本的思想是将电流切换到输出或到地,如下图所示:因此输出电流通过\(R_F\)转换成电压,而每个电流源的上节点总是保持在地电压。电流型D/A转换器将在后续的温度计码D/A转换器章节…

模拟集成电路设计系列博客——6.2.3 电荷重分布开关电容转换器

6.2.3 电荷重分布开关电容转换器 电荷重分布开关电容转换器的基本思想是将开关电容增益放大器的输入电容替换为一个可编程电容阵列(PCA,Programmable Capacitor Array),如下图所示:如我们之前在开关电容增益放大器时讨论的一样,上图中的电路对于放大器输入失调电压,\(1/…

CF981F Round Marriage

传送门首先最小化最大,一眼鉴定为二分。二分这个最大值 \(k\),问题变成判断是否能让新郎新娘匹配,每一对距离 \(\le k\)。 如果把新郎新娘视作二分图,每个点只和距离 \(\le k\) 的点连边,问题就是求是否有完美匹配。 完美匹配判定,可以联想到 Halls 定理。 先把环复制一遍…

linux12-root

linux12-root为root用户设置密码 sudo passwd rootsu su, switch user, 切换用户 选项 -, 表示是否在切换用户后加载环境变量, 建议加 参数user不填写, 默认切换root用户 # 切换到root用户 su - root可以通过exit回退到上一个用户, 也可以用快捷键ctrl+dsudo super user do, 为…

PC-100垂直拉制仪使用指南

序言现在大部分的实验室配置的都是水平拉制仪(大部分是Sutter的P-97和P-1000)的普及,很多新的实验室也没有人配备垂直拉制仪,但是垂直拉制仪在制备锥度较长的吸附针呀、注射病毒这种用途时,比水平拉制仪更具优势,有时候,在水平拉制仪出故障或者比较急时,一些实验室也会…

linux10-echo重定向符tail

linux10-echo&重定向符&tailecho 在终端输出语句 echo "Hello World"echo输出命令 # 此处pwd被当做文本输出 echo pwd通过反引号``, 输出pwd执行内容 echo `pwd`重定向符> 将左侧命令的结果, 覆盖写入到右侧指定的文件中>> 将左侧命令的结果, 追加写…

主题捣鼓日记(周记)

就是折腾。。。主题捣鼓日记 sakura版本(YYDS)主要框架都没怎么动,功能挺完整的。但是如果要DIY,我建议还是得自己把代码捋一遍,不然从哪改起都不知道,注释有点用但不全。 捣鼓了两天两夜,还是有很多细节没改好,main.js翻了四五遍,看评论区发现诸多细节还要改CSS文件,…

前言以及回归分析

统计建模 前言 这次想尝试一下统计建模,准备长三角建模的同时,加强一下自己的数据分析能力,学习的教材是张良均的《Python数据分析与挖掘实战》,这本书后面的实战练习相当不错,值得一做,书长下面这样,zlib里有pdf的,里面涉及的代码和数据在本书中均有给出获得方式。此学…