点击关注公众号,实用技术文章及时了解

  1. 项目特性

  2. 部署过程

  • 2.1 二进制下载部署文件进行部署

  • 2.2 docker方式部署

  • 2.3 通过源代码编绎部署

部分配置说明

  • 3.1 server.context-path

预览乱码字体问题

预览展示

附件

其他说明

  • 7.1使用openoffice进行转换

  • 7.2 libXext.so.6: cannot open shared object file: No such file or directory


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

官网:https://kkfileview.keking.cn/zh-cn/index.html

1.项目特性

  • 支持word excel ppt,pdf等办公文档

  • 支持txt,java,php,py,md,js,css等所有纯文本

  • 支持zip,rar,jar,tar,gzip等压缩包

  • 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)

  • 支持mp3,mp4,flv等多媒体文件预览

  • 使用spring boot开发,预览服务搭建部署非常简便

  • rest接口提供服务,跨平台特性(java,php,python,go,php,....)都支持,应用接入简单方便

  • 支持普通http/https文件下载url、http/https文件下载流url、ftp下载url等多种预览源

  • 提供zip,tar.gz发行包,提供一键启动脚本和丰富的配置项,方便部署使用

  • 提供Docker镜像发行包,方便在容器环境部署

  • 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持

  • 最最重要Apache协议开源,代码pull下来想干嘛就干嘛

2.部署过程

部署方式,可以直接下载二进制步骤,也可以通过docker直接拉取,还可以通过源码编绎进行,下面分别说明

前提条件:Jdk需要先安装设置好,kkFileWiew是Java开发的,Jdk必需。

tar -xvf jdk-8u191-linux-x64.tar.gz -C /usr/localcat >> /etc/profile << EOFexport JAVA_HOME=/usr/local/jdk1.8.0_191/
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
EOFsource /etc/profile
[root@localhost testuser]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
2.1 二进制下载部署文件进行部署

1.从码云发行版本下载最新版发行包,这里只以linux为例,一般服务器都是linux的,如果用windows也可,看官网说明进行。

2.解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包),如:

tar xvf kkFileView-4.0.0.tar.gz -C /opt/

3.运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh

cd /opt/kkFileView-4.0.0/bin

注:linux下kkFileWiew需要LibreOffice的支持,因此startup.sh会判断系统是否已安装LibreOffice,如果没有安装,将自动下载安装,因此需要有互联网环境的支持,如果是内网的机器,可以考虑在一台有互联网环境下的机器上搭建一个http代理服务器,然后通过export命令设置通过代理下载,如在192.168.56.1上搭建了一个http代理(设置了账号和密码),可以通过如下命令执行,然后再执行startup.sh

export http_proxy=http://admin:admin123@192.168.56.1:1080
export https_proxy=http://admin:admin123@192.168.56.1:1080
export no_proxy='127.0.0.1'

运行startup.sh

[root@localhost bin]# ./startup.sh
Using KKFILEVIEW_BIN_FOLDER /opt/kkFileView-4.0.0/bin
Installing OpenOffice
Loaded plugins: fastestmirror
Determining fastest mirrors
........略
Complete!
Loaded plugins: fastestmirror
No such command: installlocalho. Please use /usr/bin/yum --help
install finshed...
Starting kkFileView...
Please execute ./showlog.sh to check log for more information
You can get help in our official homesite: https://kkFileView.keking.cn
If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers

4.按步骤3的提示执行./showlog.sh查看启动日志,报错,需要解决office.home的问题:

./startup.sh报错,不是一键部署吗?官网直接说.startup.sh难道有坑?查看startup.sh中,定定了几个目录/opt/libpreoffice*,根据官网说的,4.0版本后依赖libpreoffice,继续看/opt目录下,没看到libpreoffice目录存在,说明libpreoffice未安装成功。

/opt目录下,没看到libpreoffice目录存在,说明libpreoffice未安装成功,如下:

[root@localhost opt]# ls -hl /opt/
total 0
drwxr-xr-x. 5 root root 42 Aug 20 13:05 kkFileView-4.0.0

继续看,发现没有安装的情况是要执行install.sh

install.sh如下

看着像是会执行安装的,cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS查看,也确实是下载了很多包

手工再执行一次安装看看

cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS
yum localinstall *.rpm -y

执行成功后再重启.startup.sh,发现能正常启动了。

[root@localhost RPMS]# cd /opt/kkFileView-4.0.0/bin/
[root@localhost bin]# ./startup.sh

5.浏览器访问本机8012端口,如:http://192.168.56.101:8012

6.使用

使用较简单:从步骤4中可以看出,通过传递一个经过base64位的外部文件url地址给kkFileView程序即可如:

http://192.168.56.101:8012/onlinePreview?url=aHR0cDovLzE5Mi4xNjguNTYuMTAxOjgwMTIvZGVtby9hcHBsaWNhdGlvbi5wcm9wZXJ0aWVz

2.2 docker方式部署
##拉取镜像
docker pull keking/kkfileview:v4.0.0 ##官网拉取
docker pull 192.168.56.1:6000/keking/kkfileview:v4.0.0 ##通过私库拉取(有的话)##运行(第一次)
docker run -itd -p 8012:8012 192.168.56.1:6000/keking/kkfileview:v4.0.0 ##有私库的情况下。
或
docker run -itd -p 8012:8012 keking/kkfileview:v4.0.0##查看
docker ps -a
docker exec -it 1be9d7d654dc /bin/bash##停止与启动,
docker stop 容器id
docker start 容器id
2.3 通过源代码编绎部署

1.下载代码,以4.0.0版本为例

git clone https://gitee.com/kekingcn/file-online-preview.git##切换到v4.0.0版本
git checkout -b v4.0.0 origin/v4.0.0

2.编绎

mvn clean package -Dmaven.test.skip=true

3.编绎成功后,在file-online-preview\server\target目录下找到对应的二进制文件

4.再走一遍2.1步骤中的二进制部署方式即可。

3.部分配置说明

通过修改application.properties来修改配置,需要重启程序如:

3.1 server.context-path

默认的访问路径为/onlinePreview,通过server.context-path进行修改,

更详细的配置参见官网的配置说明:

https://kkfileview.keking.cn/zh-cn/docs/config.html

4.预览乱码字体问题

大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下:

下载如下字体包http://kkfileview.keking.cn/fonts.zip文件解压完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效,可能需要重启kkFileView程序

unzip -o -d /usr/share/fonts/ fonts.zip
##解压多了一层,需要移动一下到上一层的fonts下面,然后再删除zhFonts文件夹
mv /usr/share/fonts/zhFonts/* /usr/share/fonts/
cd /usr/share/fonts/
mkfontscale
mkfontdir
fc-cache

如果报mkfontscale命令不存在执行

yum install mkfontscale -y

解决乱码前:

解决乱码后:

5.预览展示

1.properties

2.pdf

3.word

word也是通过转换成pdf再浏览的

6.附件

链接:https://pan.baidu.com/s/1sXYjx1_16I5JFGyxEja_bA 提取码:kixv

7.其他说明

7.1使用openoffice进行转换

有时发现liboffice并没有传说官网中说的那么稳定与好,可能是我没用好,我自己转换试验是觉得openoffice更稳定,转换大于10M的word也顺利,反而用官网推荐的liboffice转换,常常崩并把office进程给搞没了,所以我这边一般是使用openoffice进行转换。

不需要改什么,就是直接再安装openoffice4就好,安装过程见

https://blog.csdn.net/jxlhljh/article/details/117041944

修改application.properties中的配置

#openoffice home路径
#office.home = C:\\Program Files (x86)\\OpenOffice 4
#office.home = ${KK_OFFICE_HOME:default}
office.home = /opt/openoffice4

然后进行kkfileView的重启,kkfileView启动时发现/opt/openoffice4目录有安装了openoffice4会以openoffice4进行启动。

7.2 libXext.so.6: cannot open shared object file: No such file or directory
#/opt/openoffice4/program/soffice.bin: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory
#先执行:
yum install -y libXext.x86_64##然后
cp -a /usr/lib64/libXext.so.6 /opt/openoffice4/program/

来源:blog.csdn.net/jxlhljh/article/details/119815808

推荐

Java面试题宝典

技术内卷群,一起来学习!!

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

SpringBoot 实现 Office 各种格式在线预览(详细教程,包教包会)相关推荐

  1. office 文档 在线预览功能实现(word,excel,pdf,ppt等多种格式)——使用https://view.xdocin.com/view 提示文档过期——基础积累

    web实现office文档在线预览功能--基础积累 最近遇到一个需求,就是要实现多种文档链接的在线预览,最简单的方式就是通过window.open(url地址)的方式来实现. 但是如果要求是在一个弹窗 ...

  2. office文档在线预览工具平台选型

    ​​​​​​在线预览原理 文档在线预览说明: 1.业务系统生成文档浏览地址,用户通过终端进行访 2.用户终端访问文档预览资源地址,请求文档解析器,解析器分为私有云和公有云部署,作用是将文档进行解析成x ...

  3. Office文档在线预览接口服务器

    现在的Office文档在线预览基本都是收费的,但这个功能几乎在所有软件系统中都会有这个需求,微软有一个Office online是免费的,但是安装跟配置非常复杂,可以说用难度5颗星来形容,有没有一个更 ...

  4. office web viewer实现office文档在线预览

    office web viewer实现office文档在线预览 office web viewer官网介绍 若要自行制作 URL,您可使用以下链接,其中 <文档位置> 是文档的 URL. ...

  5. Office 文档在线预览

    现在的Office文档在线预览基本都是收费的,但这个功能几乎在所有软件系统中都会有这个需求,微软有一个Office online是免费的,但是安装跟配置非常复杂,可以说用难度5颗星来形容,有没有一个更 ...

  6. 前端实现pdf,word,doc等Office文档格式在线预览

    在做一些后台管理或者h5页面的时候 通常会遇到Office文档格式的在线预览功能.虽然看似简单,里面却隐藏着很大的坑.简单是因为现在有各种插件可以下载实现,坑是因为涉及到一些兼容性和安全性等各种千奇百 ...

  7. Office文档在线预览/在线编辑解决方案 - 毕升OfficeAPI说明

    毕升OfficeAPI说明 毕升OfficeAPI集成.onlyoffice api集成 使用毕升Office编辑,预览文件的过程 Api 具体说明 HMAC-MD5签名 callURL返回值 如何检 ...

  8. Office 文档在线预览解决方案

    目录 一.前言 二.解决方案 1.方案一:使用开源项目搭建私服 2.方案二:永中云转换 3.方案三:XDOC 4.方案四:Office Web 365 三.总结 一.前言 对于 offic 文档,在电 ...

  9. office文档 在线预览 (doc、ppt、xls)

    office 在线预览  调用微软的api,将office文档转换为html,然后实现预览. 参考我们的实现方式:http://demo.kalcaddle.com/?user/loginSubmit ...

最新文章

  1. json 字符串传到action之后的处理,遍历. 练习代码片
  2. 如何让制定的计划实施起来
  3. 你真的了解Python吗?这篇文章可以让你了解90%
  4. 7z解压crc错误_winrar压缩包提示crc校验和错误,文件被破坏的解决办法
  5. js(Dom+Bom)第六天(1)
  6. apache ignite_Kubernetes集群上的Apache Ignite和Spring第3部分:测试应用程序
  7. python自定义模块和三方模块_python基础知识8——模块1——自定义模块和第三方开源模块...
  8. 【奇技淫巧】在安卓模拟器中安装busybox
  9. 上拉加载 php,jquery上拉加载代码及原理
  10. IS-IS详解(十二)——IS-IS 路由过载、管理标记和主机名映射
  11. 代码之美~强大的构造方法重载
  12. 小故事大道理:送你四个生活启示
  13. 按当前位置与其它位置远近排序,按经纬度计算
  14. 西门子博图功能指令——缩放
  15. 重磅!网易楚留香手游改名“一梦江湖”内幕,竟跟腾讯有关?
  16. 计算机的传播速度和传播速率一样吗,U盘传输速度和什么有关?
  17. 基于莱维飞行和随机游动策略的灰狼算法
  18. matlab与单片机联合开发【一】
  19. 字典学习中的特征选择
  20. Go --- 使用各服务商的短信服务,实现短信验证等需求

热门文章

  1. 对线性回归、逻辑回归、各种回归的概念学习
  2. 计算机多媒体对语文教学的提高,终于懂了语文教学如何利用多媒体
  3. ORA-00392: log 15 of thread 1 is being cleared, operation not allowed
  4. 吉大计算机副教授,吉林大学计算机科学与技术学院徐昊副教授
  5. 室内定位导航可以解决的问题
  6. 苹果用户如何1:10充值微信豆
  7. 从零学习 InfiniBand-network架构(六)—IB协议链路层QoS如何实现
  8. 【编程笔试】美团2021校招笔试-通用编程题第4场(附思路及C++代码)
  9. 浮点数十六进制转换工具
  10. 《我要好工作》读书笔记