- 资源介绍
- 更新记录
1.office,图片等多种文件格式添加预览功能,使用了俩种方式,第一种通过
<iframe class="child" frameborder="0" :src="'https://view.officeapps.live.com/op/view.aspx?src=' + this.downloadUrl" :style="{ width: width, height: height }" > </iframe>
通过这种方式,也做出来了,只是效果真心不太好,毕竟是 officeapps 提供的服务,对于国人来说真的不太友好
2.之后就是用了kkFileView 挺好用的一个开源项目,本地启动,运行一切都完美,还有附加的水印效果也不错,范式放到了ubuntu20.04上,就开始出现各种问题了
首先是执行启动文件,就各种报错
报错1:各种配置文件的路径找不到
因为我喜欢这样的结构
所以对应的配置文件为:
#######################################不可动态配置,需要重启生效####################################### server.port = ${KK_SERVER_PORT:8012} server.servlet.context-path= ${KK_CONTEXT_PATH:/} server.servlet.encoding.charset = utf-8 #文件上传限制 spring.servlet.multipart.max-file-size=500MB spring.servlet.multipart.max-request-size=500MB ## Freemarker 配置 spring.freemarker.template-loader-path = classpath:/web/ spring.freemarker.cache = false spring.freemarker.charset = UTF-8 spring.freemarker.check-template-location = true spring.freemarker.content-type = text/html spring.freemarker.expose-request-attributes = true spring.freemarker.expose-session-attributes = true spring.freemarker.request-context-attribute = request spring.freemarker.suffix = .ftl # office-plugin ## office转换服务的进程数,默认开启两个进程 office.plugin.server.ports = 2001,2002 ## office 转换服务 task 超时时间,默认五分钟 office.plugin.task.timeout = 5m #预览生成资源路径(默认为打包根路径下的file目录下) #file.dir = D:\\kkFileview\\ file.dir = ${KK_FILE_DIR:default} #允许预览的本地文件夹 默认不允许任何本地文件被预览 #file.dir = D:\\kkFileview\\ local.preview.dir = ${KK_LOCAL_PREVIEW_DIR:default} #openoffice home路径 #office.home = C:\\Program Files (x86)\\OpenOffice 4 office.home = ${KK_OFFICE_HOME:default} #缓存实现类型,不配默认为内嵌RocksDB(type = default)实现,可配置为redis(type = redis)实现(需要配置spring.redisson.address等参数)和 JDK 内置对象实现(type = jdk), cache.type = ${KK_CACHE_TYPE:jdk} #redis连接,只有当cache.type = redis时才有用 spring.redisson.address = ${KK_SPRING_REDISSON_ADDRESS:127.0.0.1:6379} spring.redisson.password = ${KK_SPRING_REDISSON_PASSWORD:} #缓存是否自动清理 true 为开启,注释掉或其他值都为关闭 cache.clean.enabled = ${KK_CACHE_CLEAN_ENABLED:true} #缓存自动清理时间,cache.clean.enabled = true时才有用,cron表达式,基于Quartz cron cache.clean.cron = ${KK_CACHE_CLEAN_CRON:0 0 3 * * ?} #######################################可在运行时动态配置####################################### #提供预览服务的地址,默认从请求url读,如果使用nginx等反向代理,需要手动设置 #base.url = https://file.keking.cn base.url = ${KK_BASE_URL:default} #信任站点,多个用','隔开,设置了之后,会限制只能预览来自信任站点列表的文件,默认不限制 #trust.host = file.keking.cn,kkfileview.keking.cn trust.host = ${KK_TRUST_HOST:default} #是否启用缓存 cache.enabled = ${KK_CACHE_ENABLED:true} #文本类型,默认如下,可自定义添加 simText = ${KK_SIMTEXT:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd} #多媒体类型,默认如下,可自定义添加 media = ${KK_MEDIA:mp3,wav,mp4,flv} #是否开启多媒体类型转视频格式转换,目前可转换视频格式有:avi,mov,wmv,3gp,rm #请谨慎开启此功能,建议异步调用添加到处理队列,并且增加任务队列处理线程,防止视频转换占用完线程资源,转换比较耗费时间,并且控制了只能串行处理转换任务 media.convert.disable = ${KK_MEDIA_CONVERT_DISABLE:false} #支持转换的视频类型 convertMedias = ${KK_CONVERTMEDIAS:avi,mov,wmv,mkv,3gp,rm} #office类型文档(word ppt)样式,默认为图片(image),可配置为pdf(预览时也有按钮切换) office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:image} #是否关闭office预览切换开关,默认为false,可配置为true关闭 office.preview.switch.disabled = ${KK_OFFICE_PREVIEW_SWITCH_DISABLED:false} #是否禁止演示模式 pdf.presentationMode.disable = ${KK_PDF_PRESENTATION_MODE_DISABLE:true} #是否禁止打开文件 pdf.openFile.disable = ${KK_PDF_OPEN_FILE_DISABLE:true} #是否禁止打印转换生成的pdf文件 pdf.print.disable = ${KK_PDF_PRINT_DISABLE:true} #是否禁止下载转换生成的pdf文件 pdf.download.disable = ${KK_PDF_DOWNLOAD_DISABLE:true} #是否禁止bookmark pdf.bookmark.disable = ${KK_PDF_BOOKMARK_DISABLE:true} #是否禁用首页文件上传 file.upload.disable = ${KK_FILE_UPLOAD_ENABLED:true} #预览源为FTP时 FTP用户名,可在ftp url后面加参数ftp.username=ftpuser指定,不指定默认用配置的 ftp.username = ${KK_FTP_USERNAME:ftpuser} #预览源为FTP时 FTP密码,可在ftp url后面加参数ftp.password=123456指定,不指定默认用配置的 ftp.password = ${KK_FTP_PASSWORD:123456} #预览源为FTP时, FTP连接默认ControlEncoding(根据FTP服务器操作系统选择,Linux一般为UTF-8,Windows一般为GBK),可在ftp url后面加参数ftp.control.encoding=UTF-8指定,不指定默认用配置的 ftp.control.encoding = ${KK_FTP_CONTROL_ENCODING:UTF-8} #水印内容 #例:watermark.txt = ${WATERMARK_TXT:凯京科技内部文件,严禁外泄} #如需取消水印,内容设置为空即可,例:watermark.txt = ${WATERMARK_TXT:} watermark.txt = ${WATERMARK_TXT:内部文件,严禁外泄} #水印x轴间隔 watermark.x.space = ${WATERMARK_X_SPACE:10} #水印y轴间隔 watermark.y.space = ${WATERMARK_Y_SPACE:50} #水印字体 watermark.font = ${WATERMARK_FONT:微软雅黑} #水印字体大小 watermark.fontsize = ${WATERMARK_FONTSIZE:50px} #水印字体颜色 watermark.color = ${WATERMARK_COLOR:black} #水印透明度,要求设置在大于等于0.005,小于1 watermark.alpha = ${WATERMARK_ALPHA:0.2} #水印宽度 watermark.width = ${WATERMARK_WIDTH:500} #水印高度 watermark.height = ${WATERMARK_HEIGHT:300} #水印倾斜度数,要求设置在大于等于0,小于90 watermark.angle = ${WATERMARK_ANGLE:30} #Tif类型图片浏览模式:tif(利用前端js插件浏览);jpg(转换为jpg后前端显示);pdf(转换为pdf后显示,便于打印) tif.preview.type = ${KK_TIF_PREVIEW_TYPE:tif}
对应的可执行文件:
#!/bin/bash # # ############################# # First_Author: 凯京科技 # Second_Author: sanxi # Version: 1.1 # Date: 2021/09/17 # Description: v1.1:修改进程启动机制为pid形式。 ############################# # DIR_HOME=("/opt/openoffice.org3" "/opt/libreoffice" "/opt/libreoffice6.1" "/opt/libreoffice7.0" "/opt/libreoffice7.1" "/opt/openoffice4" "/usr/lib/openoffice" "/usr/lib/libreoffice") FLAG= OFFICE_HOME= KKFILEVIEW_BIN_FOLDER=$(cd "$(dirname "$0")" || exit 1 ;pwd) PID_FILE_NAME="kkFileView.pid" PID_FILE="${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}" export KKFILEVIEW_BIN_FOLDER=$KKFILEVIEW_BIN_FOLDER # ## 如pid文件不存在则自动创建 if [ ! -f ${PID_FILE_NAME} ]; then touch "${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}" fi ## 判断当前是否有进程处于运行状态 if [ -s "${PID_FILE}" ]; then PID=$(cat "${PID_FILE}") echo "进程已处于运行状态,进程号为:${PID}" exit 1 else cd "$KKFILEVIEW_BIN_FOLDER" || exit 1 echo "Using KKFILEVIEW_BIN_FOLDER $KKFILEVIEW_BIN_FOLDER" grep 'office\.home' ./config/application.properties | grep '!^#' if [ $? -eq 0 ]; then echo "Using customized office.home" else for i in ${DIR_HOME[@]} do if [ -f "$i/program/soffice.bin" ]; then FLAG=true OFFICE_HOME=${i} break fi done if [ ! -n "${FLAG}" ]; then echo "Installing OpenOffice" sh ./install.sh else echo "Detected office component has been installed in $OFFICE_HOME" fi fi ## 启动kkFileView echo "Starting kkFileView..." nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=./config/application.properties -jar kkFileView-4.1.0-SNAPSHOT.jar > ./log/kkFileView.log 2>&1 & echo "Please execute ./showlog.sh to check log for more information" PROCESS=$(ps -ef | grep kkFileView | awk 'NR==1{print $2}') # 启动成功后将进程号写入pid文件 echo "$PROCESS" > "$PID_FILE" fi
3.大致配置成这样的话,就可以正常启动了。但是在使用过程中出现了问题,.txt .jpg .pdf 文件可以很完美的完成预览效果,而word,excel, ppt 等会出现中文乱码为了
官网上给出的答案是:
4.文件都上传了之后,在执行mkfontscale 、mkfontdir 、fc-cache使字体生效时,一直提示安装依赖软件,但是安装不上去,之后又改变了apt的源
记得先备份!!!!!!!!!!!!!!!
vim /etc/apt/sources.list
将里面的内容改为阿里云即可,以下是用Ubuntu16.04为例子。16.04对应的代称是xenial。如果其他版本,可以将代称修改。
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
ubuntu的源最好也加上,避免某些库找不到。
deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
运行sudo apt-get update 等待完成更新
运行sudo apt-get upgrade 等待完成更新
在执行mkfontscale 、mkfontdir 、fc-cache,并执行提示中,需要安装的软件,安装完成之后,在执行 kfontscale 、mkfontdir 、fc-cache 完美运行
5.最后重新启动了一下项目,测试完美解码
猜你喜欢
-
springboot自动重启进程,springboot通过shell自动重启
2024-05-05 -
Notepad++ SHH远程链接插件,NppFtp插件,以及使用方法
2021-01-25 -
linux shell脚本调用java main方法 代码传值
2021-01-14 -
kkFileView 预览功能中乱码
2022-09-19 -
ant-vue Ant Design Vue 图标怎么使用,vue node_modules 怎么还原
2023-02-08 -
java基础使用for循环 输出菲波拉契数列前30位
2021-09-22 -
百度地图api 设置多点标注,点击标注后出现自定义内容
2022-11-27 -
1.若依使用说明,项目概述,提供redis,vue下载的组件
2022-08-15 -
2.若依使用说明,目录说明
2022-08-15 -
java通过反射调用有参数的方法
2021-01-14
-
人事管理系统
2021-11-08 -
springboot 线上死循环执行一段时间后服务挂起,假死,DAM-0020TA监听,开关量转TCP/IP
2024-04-29 -
2.php教程,网站的基本概念
2022-08-11 -
不停歇的 Java 即将发布 JDK 16,新特性速览!
2020-12-06 -
软件开发文档|需求规格说明书|软件设计说明书|详细设计说明书|体系结构设计说明书|数据库设计文档|测试用例文档|软件测试报告|bug描述说明书|各类系统开发需求
2024-03-23 -
多线程-线程通讯之-管程法(生产者-消费者-缓存区)
2021-06-24 -
apache反向代理出现502调整
2020-12-03 -
Java 深入解析,强引用、弱引用、软引用、虚引用
2020-12-17 -
uniapp 开发的app站内更新怎么去实现
2023-01-29 -
若依微服务式中 sentinel 限流理解
2022-08-24
猜你在找
1. 本站所有资源来源于用户上传和网络,如有侵权请及时联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"mababa.xin",如遇到无法解压的请联系管理员!
码巴巴-优质代码创造者 » kkFileView 预览功能中乱码
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 一个高级程序员模板开发平台
- 2022-09-19Hi,初次和大家见面了,请多关照!