JAVA在线文件预览(centOs7部署kkFileView)

JAVA在线文件预览

1.JAVA实现文件预览

在线演示地址:https://file.keking.cn/index
官方地址:https://gitee.com/kekingcn/file-online-preview
下载地址:https://gitee.com/kekingcn/file-online-preview/releases

此处使用在linux中部署kkFileView来进行调用,从而实现在线文档预览效果。

2.centOs部署kkFileView

2.1 下载kkFileView

下载地址:
https://gitee.com/kekingcn/file-online-preview/releases

JAVA在线文件预览(centOs7部署kkFileView)

解压文件在任意目录 本人在/usr/local/javaDeploy下:
JAVA在线文件预览(centOs7部署kkFileView)
解压项目:

tar -zxvf kkFileView-2.2.0.tar.gz

2.2 安装依赖

运行以下命令(openOffice依赖),如果执行后提示已安装则直接跳过该步骤:

yum install -y libXext.x86_64  
yum groupinstall -y “X Window System”

2.3 启动项目

进入启动目录,进行启动:

cd  /usr/local/javaDeploy/kkFileView-2.2.1/bin
sh startup.sh

启动会调用,script文件夹下的install安装openoffice4。自动下载安装包后,会建立/opt/openoffice4目录。openoffice的默认启动端口是8100,注意是否有冲突。

可以尝试访问http://ip:8012 查看初始界面了。
JAVA在线文件预览(centOs7部署kkFileView)

2.4 检查openOffice启动

openoffice虽然安装了,但也可能因为某些原因启动不了,这样还是看到不到界面的。所以先测试openoffice是否可用。

# 进入 openOffice 安装目录
cd /opt/openoffice4/program/
# 在本地开启 openOffice 服务,端口为 8100。
./soffice -headless -accept="socket,host=127.0.0.1,port=8100:urp;" -nofirststartwizard & 

查看openOffice是否启动:

ps -ef | grep soffice

3.常见问题

3.1 启动报错

3.1.1 错误场景

启动报错提示:
打开kkFileView-2.2.1目录下的log日志,如下图

Caused by: java.lang.IllegalStateException: a process with acceptString 'socket,host=127.0.0.1,port=8100' is already running; pid 3435

JAVA在线文件预览(centOs7部署kkFileView)

3.1.2 解决办法

解决办法:启动openoffice命令改成你的ip地址,不要使用127.0.0.1
执行下面命令即可解决

cd /opt/openoffice4/program/
soffice -headless -accept="socket,host=192.168.29.205,port=8100;urp;" nofirststartwizard  &

如图下:
JAVA在线文件预览(centOs7部署kkFileView)
验证是否启动成功:
如下图,则说明openOffice执行成功了
JAVA在线文件预览(centOs7部署kkFileView)
重新启动项目即可。

3.2 预览PPT或doc文字不显示

3.2.1 错误场景

PPT是带文字的,但是文件预览却没文字。如下图:
JAVA在线文件预览(centOs7部署kkFileView)
JAVA在线文件预览(centOs7部署kkFileView)

3.2.2 解决方式

PPT中字体用了楷体,在centOs中没有中文字体造成的。因此只需要安装中文字体即可。

把windows字体安装到centos下,步骤如下:
步骤一:查看centos下是否存在字体库,在/usr/shared目录就看到fonts和fontconfig目录,如下图:
JAVA在线文件预览(centOs7部署kkFileView)
有则跳过,反之则安装,执行命令:

yum -y install fontconfig

JAVA在线文件预览(centOs7部署kkFileView)
执行命令后如上图则安装字体库成功。

步骤二:把window下的中文字体目录,c:/windows/Fonts/下所需字体拷贝,
JAVA在线文件预览(centOs7部署kkFileView)
JAVA在线文件预览(centOs7部署kkFileView)
(此处我拷贝7个中文字体)

上传到centOS的字体目录下/usr/shared/fonts下,此处我是建立了一个chinese文件夹存放中文字体:

cd  /usr/shared/fonts
mkdir  chinese

JAVA在线文件预览(centOs7部署kkFileView)
上传字体后,如图下:
JAVA在线文件预览(centOs7部署kkFileView)
修改chinese目录权限:

chmod -R 755 /usr/share/fonts/Chinese

接下来安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件,输入命令:

yum -y install ttmkfdir

安装成功如下图:
JAVA在线文件预览(centOs7部署kkFileView)
然后执行下面命令即可:

ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

最后一步,修改字体配置文件:

vi /etc/fonts/fonts.conf

在Font list,即字体列表,在这里需要把我们添加的中文字体位置加进去:
JAVA在线文件预览(centOs7部署kkFileView)
然后输入:wq保存退出,最后别忘了刷新内存中的字体缓存,这样就不用reboot重启了:

fc-cache

这样所有的步骤就算完成了,最后再次通过fc-list看一下字体列表:
JAVA在线文件预览(centOs7部署kkFileView)
重新启动项目,如下图:ppt文字显示正常,doc文字显示正常
JAVA在线文件预览(centOs7部署kkFileView)

4.上述参考文档

操作步骤:https://www.cnblogs.com/maobuji/p/11365933.html
码云源代码
https://gitee.com/wyshp08/file-online-preview

linux操作版本:https://blog.csdn.net/weixin_43312521/article/details/107481338

安装中文字体:https://blog.csdn.net/u013848024/article/details/79630858

上一篇:Matplotlib: Font family ['sans-serif'] not found.(macOS)


下一篇:IOS开发-UI学习-沙盒机制&文件操作