上篇说了使用nginx代理kkfile预览文件,但是又发现个新问题,预览其他文件时都正常,但是预览.xlsx格式的时候,在左上角会有【跳转HTML预览】【打印】两个按钮,如下所示:

这篇就来说一下如何去掉。

首先这个跟kkfile的版本有关系,别管哪个版本,下面的方法都试一下即可,最后有个终极方案,实在不行就使用终极方案。

尝试方案:通过 URL 参数控制显示行为

KKFileView 支持通过 URL 参数来自定义预览界面的显示行为。虽然官方文档可能不完善,但根据社区实践和源码分析,你可以尝试以下参数来隐藏工具栏或特定按钮

方法一:使用 office.viewState=hide 参数(推荐尝试)

这是 KKFileView 支持的一个隐藏参数,用于控制预览界面的显示状态。

修改你的预览 URL,加入:

&office.viewState=hide

完整示例:

http://kkfile-server:8012/onlinePreview?url=http://file-server/test.xlsx&office.viewState=hide

或者在kkfile的配置文件application.properties中:

改完保存之后,记得重启一下kkfile服务。

这个参数的作用是隐藏工具栏和操作按钮,进入“纯净查看模式”。

⚠ 注意:该参数在某些版本的 KKFileView 中有效(尤其是基于 Vue 或 React 重构的前端),但不是所有版本都支持。

方法二:使用 showMenu=false 或 showToolbar=false

尝试以下参数组合:

&showMenu=false&showToolbar=false

完整 URL 示例:

http://kkfile-server:8012/onlinePreview?url=http://file-server/test.xlsx&showMenu=false&showToolbar=false

这些参数会告诉前端不要显示菜单和工具栏。

方法三:使用 previewType=embed 或类似参数(嵌入模式)

有些部署会支持嵌入式预览模式,减少 UI 元素:

&previewType=embed

或者

&view=embed

终极方案:修改kkfileview服务端的前端代码

接下来就以我的例子来讲了哈,因为我们修改kkfileview jar包中的代码,所以需要先解压jar包

第一步:首先进入到kkFileView的服务中,找到.jar包的目录(/opt/kkfileview/kkFileView-4.4.0/bin/下)

以上是我的目录。

第二步:备份kkFileView-4.4.0.jar

// 换成自己的文件名
cp -r kkFileView-4.4.0.jar ./kkFileView-4.4.0.jar.bak

以上目录可以看到,我已经备份过了。

第三步:创建kkfileview-unpacked文件夹用于存放解压后的jar包

mkdir kkfileview-unpacked

第四步:解压jar包

注意:要先进入刚创建的 kkfileview-unpacked 目录中,然后执行:

jar -xf ../kkFileView-4.4.0.jar

解压完之后就可以看到如下目录中的文件:

第五步:修改kkfileview服务中的前端代码:

首先进入:cd BOOT-INF/classes/web/

然后看一下下面的文件:

officeweb.ftl比较像奥,就是它!!!

然后我们可以先看一下改文件:

这里就是我们要找的那两个按钮,给它干掉即可,然后保存

第六步:删除原来的jar包

回到我们的/opt/kkfileview/kkFileView-4.4.0/bin/ 下  执行:

rm -rf kkFileView-4.4.0.jar

第六步:重新打jar包

然后再回到我们的 kkfileview-unpacked 目录下,执行如下命令打jar包:

jar -cfm0 ../kkFileView-4.4.0.jar META-INF/MANIFEST.MF .

注意:上面的 -cfm0 中的0很重要,一开始没加0启动不起来

第七步:重新启动kkfileview

可以通过

lsof -i :8012或者 ps -elf | grep kkfile

找到当前正在启动的kkfileview进程,然后kill干掉它

再执行

./shutdown.sh./startup.sh

这样就可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94072.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94072.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94072.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里开源新AI code工具:qoder功能介绍

下载地址: https://qoder.com/ 文档地址: https://docs.qoder.com/ 文章目录1. AI 编码发展趋势2. 真实世界软件开发的挑战3. 我们的方法3.1. 透明度3.1.1. 知识可见性3.1.2. 执行透明度3.2. 增强上下文工程3.3. 规范驱动与任务委托3.3.1. 聊天模式&…

什么是短视频矩阵系统企业立项功能源码开发,支持OEM

短视频矩阵系统企业立项功能源码开发解析在短视频行业蓬勃发展的当下,企业纷纷布局短视频矩阵,以实现多平台、多账号的协同运营。而企业立项作为短视频矩阵项目启动的关键环节,其高效、规范的管理直接影响项目的推进效率与成果。为此&#xf…

当GitHub宕机时,我们如何协作?

问题背景与影响 GitHub作为主流代码托管平台的依赖现状宕机对分布式团队、CI/CD流水线、紧急修复的影响案例其他类似平台(GitLab、Bitbucket)的潜在连带风险 本地与离线协作方案 利用Git分布式特性:本地仓库继续提交,恢复后同步搭…

【会议跟踪】Model-Based Systems Engineering (MBSE) in Practice 2025

会议主旨与议题 会议宣传链接:https://www.sei.cmu.edu/events/mbse-in-practice/ 本次会议将于2025年8月21日位美国弗吉尼亚州阿灵顿(五角大楼所在地)举行。本次会议主旨为 MBSE in Practice: Bridging the Gap Between Theory and Success(2025)。随着软件定义系统日趋…

浏览器的渲染流程:从 HTML 到屏幕显示

在我们日常使用浏览器浏览网页时,往往忽略了浏览器背后复杂的渲染过程。从输入 URL 到页面最终显示在屏幕上,浏览器需要经过一系列精心设计的步骤。 浏览器渲染的整体流程浏览器的渲染流程可以大致分为两个主要部分:网络 和 渲染。当用户在地…

FastMCP 客户端服务器通信示例:从入门到实战(STDIO 传输)

引言 在现代分布式系统和AI应用中,模型上下文协议(MCP)扮演着重要角色,它负责协调客户端与服务器之间的通信,尤其是在需要频繁交互的场景中。本文将介绍如何使用FastMCP库快速实现客户端与服务器之间的通信&#xff0c…

宝可梦肉鸽 PC/手机双端 多种存档 全闪光 无限金币 全宝可梦解锁 免安装中文版

网盘链接: 宝可梦肉鸽 免安装中文版 名称:宝可梦肉鸽 PC/手机双端 多种存档 全闪光 无限金币 全宝可梦解锁 免安装中文版 描述:宝可梦肉鸽修改版是一款非常受欢迎的口袋妖怪系列,游戏拥有许多独特的妖怪和玩法。在游戏中&#…

Linux 下的网络编程

1、目的实现不同主机上进程间的通信。2、问题主机与主机之间在物理层面必须互联互通。进程与进程在软件层面必须互联互通。IP地址:计算机的软件地址,用来标识计算机设备。MAC地址:计算机的硬件地址(固定)。网络的端口号…

Go语言在边缘计算中的网络编程实践:从入门到精通

一、引言 在数字化浪潮席卷全球的今天,边缘计算如同一股清流,正在重新定义我们对网络架构的理解。想象一下,当你在自动驾驶汽车中需要毫秒级响应,或者在偏远工厂中需要实时处理传感器数据时,传统的云计算模式就像是&qu…

ASPICE过程能力确定——度量框架

🚗【汽车人必看】ASPICE能力评估核心:度量框架全解析|90%工程师都搞不懂的评分规则!🔍 为什么你的ASPICE评估总卡在L2?——揭秘6大能力等级背后的评分逻辑,附提升秘籍!🔥…

机器学习在量化中的应用

一、核心应用场景在因子研究中,scikit-learn 主要解决以下几类问题:因子预处理与标准化:StandardScaler, RobustScaler因子有效性分析:LinearRegression (IC分析)降维与因子合成:PCA, FactorAnalysis机器学习预测模型&…

RabbitMQ:消息转化器

目录一、基本概述二、如何处理一、基本概述 在RabbitMQ中,一般情况下传递字符串会被正常解析,如果传递的是一个Object类型或者是一个对象类型的时候,RabbitMQ会将其自动转化为字节码发送,这不利于我们的读取个解析。 二、如何处…

【Protues仿真】基于AT89C52单片机的LCD液晶显示屏显示控制

目录 1 LM016L液晶显示模块 1.1 基本参数 1.2 引脚定义 1.3硬件连接示例(AT89C52) 1.4 常用指令集(HD44780 子集) 1.5 常见问题与注意事项 1.8 结论 2 LM016L液晶显示模块控制电路原理图 3 LM016L液晶显示模块控制程序 …

孤独伤感视频素材哪里找?分享热门伤感短视频素材资源网站

你是不是也经常在抖音上刷到很火的伤感视频,那么伤感视频素材都在哪里可以下载呢?作为一名从业多年的视频剪辑师,今天就跟大家聊聊那些可以下载伤感素材高清无水印的网站,如果你也在苦苦找寻伤感素材,快来看看吧&#…

笔记本怎么才能更快散热?

一、“物理降温法”​▪️ 垫高高!别让底部 “窒息”​笔记本底部全是进风口,放床上 / 沙发上会被堵住!垫点东西拉开底部空间,高度 1-2cm。​▪️ 给风扇 “松绑”​按「CtrlShiftEsc」打开任务管理器,点 “进程”&…

电机驱动实现插补算法之脉冲和方向接收(以stm32主控为例)

一、方案 A(推荐):编码器模式吃脉冲(TI1 STEP,TI2 DIR) 核心思路 把定时器设为 Encoder TI1 模式:每个 STEP 上升沿计一次,在那个沿的瞬间用 TI2(DIR)的电…

[特殊字符] 潜入深渊:探索 Linux 内核源码的奇幻之旅与生存指南

文章目录 朋友们,敲黑板!!!(超级重要)我们今天聊点硬核的——不是普通的代码,而是驱动了整个数字世界心跳的Linux内核源代码!它藏在哪?就在那个传奇仓库:torv…

如何监控和管理微服务之间的调用关系

监控和管理微服务之间的调用关系需要结合分布式追踪、服务依赖分析、实时监控和可视化工具,以实现对调用链路的可见性、问题定位和性能优化。以下是具体的实现方案和工具链:一、核心监控目标调用链路可视化:展示服务间的调用关系、方向和频率…

3.4 缩略词抽取

概述 缩略词指的是一个词或者短语的缩略形式,其通常由原词中的一些组成部分构成,同时保持原词的含义。缩略词的检测与抽取在方法上与同义词的检测与抽取类似,但是相比同义词,缩略词在文本中出现的规则往往更简单。 不同语言缩略词…

Lua脚本如何执行主程序的C函数

Lua Call C function Lua脚本可以和C函数灵活的结合,Lua脚本作为控制语言,使用C函数来做性能计算部分。 Lua脚本的执行器有Lua 和 Luajit。 使用Lua执行器,可以通过C语言注册C函数到Lua State, 然后Lua脚本可以调用该C函数。 使用Luajit&…