优雅操作,尽在掌握:探索kkFileView的独特魅力

2023-10-19 15:40

本文主要是介绍优雅操作,尽在掌握:探索kkFileView的独特魅力,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

        kkFileView是一个文件预览解决方案,支持大部分常用的文件格式。该项目是基于 SpringBoot 进行搭建,对于 java 的程序员来说非常的友好,容易上手和部署。该项目不需要二开,需要独立部署。

简介

        本篇文章主要分享的内容是我对这个项目的部分理解、部署过程的总结、遇到的问题分析以及解决方式。

一、部署运行

官网: kkFileView - 在线文件预览

1-1 特殊网络部署(无法访问互联网)

安装openOffice

        安装libreOffice 由于我已经实践过,会缺失依赖,我这边建议直接安装openOffice就好了,想试试安装libreOffice的可以去百度。

 1、 下载

链接:https://pan.baidu.com/s/1cfPoQfBxyjvCeafMNBvSXQ?pwd=zie7 
提取码:zie7

2、上传到服务器

3、解压

tar -zxvf Apache_OpenOffice_4.1.14_Linux_x86-64_install-rpm_zh-CN.tar.gz

4、进入目录RPMS

5、运行命令

sudo yum localinstall  *.rpm  #安装命令sudo yum remove  openoffice*   #删除命令

环境要求

1、 java:1.8+

2、OpenOffice(已安装)
 

Linux系统上部署

1、下载kkFileView

访问链接: kkFileView: 使用spring boot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、wps、xls、xlsx、zip、rar、ofd、xmind、bpmn 、eml 、epub、3ds、dwg、psd 、mp4、mp3以及众多类文本类型文件在线预览https://gitee.com/kekingcn/file-online-preview

2、用自己的开发工具打开(idea)

1、设置office文件预览默认用pdf。

2、打包

3、将打完的包上传到服务器,启动。

启动脚本:


#!/in/bash
APP_PATH=/www/wwwroot/
APP_NAME=j=kkFileView-4.2.1.jar
usage() {echo "case: sh run.sh [start|stop|restart|status]"echo "请类似这样执行 ./*.sh start   or  ./*sh restart"pwdexit 1
}# 判断当前服务是否已经启动的函数
is_exist(){echo "执行 is_exist 方法"pid=`ps -ef|grep ${APP_PATH}$APP_NAME|grep -v grep|awk '{print $2}' ` #根据ps 命令查询当前服务的进程号 赋值给pid"if [ -z "${pid}" ]; then #判断pid是否为空echo "pid 等于null,应用不在运行"return 1elseecho "pid 不等于null,${APP_NAME}正在${pid}运行"return 0fi
}
start(){is_existif [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号打印出来echo "${APP_NAME} running. pid=${pid}"elsenohup java -Dfile.encoding=UTF-8 -jar ${APP_PATH}${APP_NAME} > /dev/null 2>&1 &# nohup java -jar ../lib/$APP_NAME > log.file 2>log.error &  # 说明pid为空 执行java -jar 命令启动服务echo "${APP_PATH}${APP_NAME} started"fi
}
stop(){echo "执行 stop 方法"is_existif [ $? -eq "0" ]; then    # [$? -eq "0"] 说明pid不等于空 说明服务正在运行中,将进程号杀死kill -9 $pidecho "${APP_PATH}${APP_NAME}:${pid} stopped"elseecho "${APP_PATH}${APP_NAME} not running"fi
}
status(){echo "执行 status 方法"is_existif [ $? -eq "0" ]; thenecho "${APP_PATH}${APP_NAME} running. Pid is ${pid}"elseecho "${APP_PATH}${APP_NAME} not running"fi
}
# 重启命令其实就是先执行关闭命令 再执行重启命令
restart(){stopstart
}# 这里的$1 取的是当前输入命令 的第二个参数 ./start.sh start
case "$1" in"start")start;;"stop")stop;;"status")status;;"restart")restart;;*)usage;;
esac

运行命令:

sh  run.sh  restart  #重启命令
sh  run.sh  stop  #停止命令

最后访问

 http://127.0.0.1:8012 #对应服务器的地址8012 端口,记得放行端口

前端调用

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));

2-2 互联网部署

互联网的部署相对于内网来说容易很多,因为有网络

访问链接 kkFileView: 使用spring boot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、wps、xls、xlsx、zip、rar、ofd、xmind、bpmn 、eml 、epub、3ds、dwg、psd 、mp4、mp3以及众多类文本类型文件在线预览https://gitee.com/kekingcn/file-online-preview

将下载好的文件上传服务器

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

2、打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh)

3、浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首页

二、常用配置说明

office.preview.type 

说明:office文件(doc、docx、ppt、pptx)、pdf 文件预览方式,默认为图片方式,预览时也有按钮相互切换,可选项:'image', 'pdf'

image: 默认预览方式,将office文件每一页后台转成图片,前台懒加载(只加载当前页面内容),推荐预览文件大且前台加载慢的时候使用

pdf: 统一转成pdf加一次加载,推荐内网访问,网速快时使用

watermark.txt 

默认水印内容,如需取消水印,内容设置为空即可,例如:watermark.txt = ${WATERMARK_TXT:}

默认值:''

watermark.x.space 

水印x轴间隔

默认值:10

watermark.y.space 

水印y轴间隔

默认值:10

watermark.font 

水印字体

默认值:微软雅黑

watermark.fontsize 

水印字体大小

默认值:18px

watermark.color 

水印字体颜色

默认值:black

watermark.alpha 

水印透明度,要求设置在大于等于0.005,小于1

默认值:0.2

watermark.width 

水印宽度

默认值:180

watermark.height 

水印高度 默认值:80

watermark.angle 

水印倾斜度数,要求设置在大于等于0,小于90

默认值:10

三、遇到的问题

office.home 配置有误

有三种原因

1、没有安装libreOffice或者openOffice。

1、内网按照我上面的方式安装一下openOffice

前提:如果运行脚本不行的话

2、外网也可以跟内网一样安装openOffice,或者直接 yum install libreoffice,实在不行去 libreoffice.org 官网下载一个到服务器 然后 解压进入RPMS 运行 yum localinstall *.rpm ,可以参考上面安装openOffice。

libreOffice安装包:

链接:https://pan.baidu.com/s/1t3VdfgiZ8tzLrSS-GHokAQ?pwd=mfo0 
提取码:mfo0

自行安装libreOffice步骤

安装方式跟上面安装openOffice一样

2、安装没成功(脚本无法使用,概率小) 

3、你自己安装的所在目录不是程序识别的默认路径

看看你的配置文件中有没有改动,按照软件的真实环境去配置,如果你是按照我写的内容去做的,正常不会有这种情况。

文件乱码

1、 下载字体

链接: http://kkfileview.keking.cn/fonts.zip

压缩包:

链接:https://pan.baidu.com/s/1G3q2R0KnE6_68bgUjFwk2Q?pwd=5870 
提取码:5870

2、将文件上传到 /usr/share/fonts 并解压

unzip fonts.zip

3、解压后进入目录执行命令

chmod -R 755 *.TTF chmod -R 755 *.ttf chmod -R 755 *.ttc source /etc/profile

4、重启kkFileView服务

office文件预览一直加载

修改配置文件:

office.preview.type=pdf

文件预览失败

先排除一下,静态资源能否请求到。

kkFIleView的工作模式是将文件下载到缓存,然后再去给用户预览。

所以先要排除文件能否下载。

正常就没有其他问题。

结束语

以上的内容属于个人见解,欢迎沟通交流。

有遇到新的问题,我会继续分享到这篇文章

这篇关于优雅操作,尽在掌握:探索kkFileView的独特魅力的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/240753

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

动手学深度学习【数据操作+数据预处理】

import osos.makedirs(os.path.join('.', 'data'), exist_ok=True)data_file = os.path.join('.', 'data', 'house_tiny.csv')with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n') # 列名f.write('NA

如何更优雅地对接第三方API

如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/third 我们在日常开发过程中,有不少场景会对接第三方的API,例如第三方账号登录,第三方服务等等。第三方服务会提供API或者SDK,我依稀记得早些年Maven还没那么广泛使用,通常要对接第三方

线程的四种操作

所属专栏:Java学习        1. 线程的开启 start和run的区别: run:描述了线程要执行的任务,也可以称为线程的入口 start:调用系统函数,真正的在系统内核中创建线程(创建PCB,加入到链表中),此处的start会根据不同的系统,分别调用不同的api,创建好之后的线程,再单独去执行run(所以说,start的本质是调用系统api,系统的api

Java IO 操作——个人理解

之前一直Java的IO操作一知半解。今天看到一个便文章觉得很有道理( 原文章),记录一下。 首先,理解Java的IO操作到底操作的什么内容,过程又是怎么样子。          数据来源的操作: 来源有文件,网络数据。使用File类和Sockets等。这里操作的是数据本身,1,0结构。    File file = new File("path");   字

生信代码入门:从零开始掌握生物信息学编程技能

少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 介绍 生物信息学是一个高度跨学科的领域,结合了生物学、计算机科学和统计学。随着高通量测序技术的发展,海量的生物数据需要通过编程来进行处理和分析。因此,掌握生信编程技能,成为每一个生物信息学研究者的必备能力。 生信代码入门,旨在帮助初学者从零开始学习生物信息学中的编程基础。通过学习常用

轻松录制每一刻:探索2024年免费高清录屏应用

你不会还在用一些社交工具来录屏吧?现在的市面上有不少免费录屏的软件了。别看如软件是免费的,它的功能比起社交工具的录屏功能来说全面的多。这次我就分享几款我用过的录屏工具。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  这个软件的操作方式非常简单,打开软件之后从界面设计就能看出来这个软件操作的便捷性。界面的设计简单明了基本一打眼你就会轻松驾驭啦

MySQL——表操作

目录 一、创建表 二、查看表 2.1 查看表中某成员的数据 2.2 查看整个表中的表成员 2.3 查看创建表时的句柄 三、修改表 alter 3.1 重命名 rename 3.2 新增一列 add 3.3 更改列属性 modify 3.4 更改列名称 change 3.5 删除某列 上一篇博客介绍了库的操作,接下来来看一下表的相关操作。 一、创建表 create

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成