首页 > 其他分享 >开源文档预览项目 kkFileView (9.9k star) ,快速入门

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

时间:2024-05-01 23:35:25浏览次数:31  
标签:star tar 预览 LibreOffice 9.9 Linux kkFileView docker

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/[email protected]/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 [email protected]: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” , 即可获取 。


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

标签:star,tar,预览,LibreOffice,9.9,Linux,kkFileView,docker
From: https://www.cnblogs.com/makemylife/p/18169801

相关文章

  • start windows executable in multi-process and wait its ending
    theexecutableimporttimeimportrandomimportsystime.sleep(random.random())print(sys.argv[1])thecallingcontrolimportsubprocessll=[]foriiinrange(8):ll.append(subprocess.Popen(f"pythonab.pymk{ii}"#maybesom......
  • Start all over again
    Java从头来过重新复习以前学过的知识,并深入学习其中把文章当作云笔记以教学的口吻讲给自己听如果你也想和我一起复习,请指正我理解错误和我遗漏的地方如果你还没有学过希望我的文章对你有帮助(带你入国军)如果有大火的技术也希望能评论告诉我,我也去尝尝鲜如果有踩过的坑也希望......
  • [NewStarCTF] UnserializeOne __clone魔术方法
    今天来个反序列化没见过的魔术方法__clone。先看源码:点击查看代码classStart{public$name;protected$func;publicfunction__destruct(){echo"WelcometoNewStarCTF,".$this->name;}publicfunction__isset($var){......
  • UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 0: invalid
    报错:报错信息UnicodeDecodeError:'utf-8'codeccan'tdecodebyte0xa1inposition0:invalidstartbyte指出在尝试使用UTF-8编码解码文件时遇到了问题。这通常发生在文件的编码不是UTF-8时,比如它可能是GBK、GB2312或其他编码。哈工大停用词表可能不是用UTF-8......
  • [ARC176F] Colorful Star
    MyBlogs[ARC176F]ColorfulStar感觉很考验想象力和计数基本功QWQ。首先考虑给定了局面之后如何进行判定。考虑把覆盖的过程倒着做:如果\(i\)旁边有和它颜色相同的棋子,那它就可以变成任意的颜色,然后要求最终能不能\(n\)种颜色都只剩一种。然后这个还是不太本质。考虑如果......
  • [NewStarCTF]flask disk debug模式下的漏洞
    打开环境,发现三个链接/list/upload/console,题目描述为flask,那就是与flask的debug模式相关的漏洞,在此之前我只听过debug的pin码漏洞,也就是关于pin码的生成的。这里提一下:点击查看代码pin码的生成取决于下面这几个因素:1.服务器运行flask所登录的用户名。2.modname2.geta......
  • LFI to RCE [NewStarCtf]Include
    记录一个没见过的RCE类型题目。先看源码:点击查看代码<?phperror_reporting(0);if(isset($_GET['file'])){$file=$_GET['file'];if(preg_match('/flag|log|session|filter|input|data/i',$file)){die(&#......
  • Java源码阅读-String.startsWith(String prefix, int toffset)
    /***Testsifthesubstringofthisstringbeginningatthe*specifiedindexstartswiththespecifiedprefix.**@paramprefixtheprefix.*@paramtoffsetwheretobeginlookinginthisstring.*@return{@codetrue}ifthecharacter......
  • Teamcenter 《POM has not start》处理
    修改oracle密码有效期虚拟机为了方便,修改为永不过期1.查看用户和profile,testuser为要查找的用户名,按实际情况来修改。cmd>sqlplus/assysdbaselectusername,profilefromdba_userswhereusername='INFODBA';###--一般查出为DEFAULT2.查看默认设置的密码到期时长,一......
  • nfs-server启动失败:Unable to break cycle starting with nfs-server.service/start
    [root@harbor~]#systemctlstatusnfs-server.service●nfs-server.service-NFSserverandservicesLoaded:loaded(/usr/lib/systemd/system/nfs-server.service;disabled;vendorpreset:disabled)Drop-In:/run/systemd/generator/nfs-server.service.d......