当前位置: 首页 > news >正文

kkfileview预览Excel文件去掉左上角的跳转HTM预览、打印按钮

上篇说了使用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

./shutdown.sh./startup.sh

这样就可以了

http://www.lryc.cn/news/625283.html

相关文章:

  • Spring Boot 全局异常处理
  • JVM参数优化
  • 《算法导论》第 29 章 - 线性规划
  • Matplotlib数据可视化实战:Matplotlib子图布局与管理入门
  • Day10--滑动窗口与双指针--2875. 无限数组的最短子数组,76. 最小覆盖子串,632. 最小区间
  • Hugging Face 核心组件介绍
  • 【牛客刷题】岛屿数量问题:BFS与DFS解法深度解析
  • Git的初步学习
  • 系统架构设计师-操作系统-避免死锁最小资源数原理模拟题
  • git 创用操作
  • [系统架构设计师]云原生架构设计理论与实践(十四)
  • linux系统装google chrome,amd64
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(六)
  • 应用缓存不止是Redis!——亿级流量系统架构设计系列
  • [系统架构设计师]信息系统架构设计理论与实践(十二)
  • 监督分类——最小距离分类、最大似然分类、支持向量机
  • 利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
  • Apache IoTDB:大数据时代时序数据库选型的技术突围与实践指南
  • 《算法导论》第 31 章 - 数论算法
  • 开源 C++ QT Widget 开发(二)基本控件应用
  • 解决 UniApp 自定义弹框被图片或 Canvas 覆盖的 Bug
  • 【datawhale组队学习】n8n TASK01
  • 软件测试覆盖率:真相与实践
  • Mysql——分库分表后id冲突解决方案(即分布式ID的生成方案)
  • Python 作用域 (scope) 与闭包 (closure)
  • Android中使用RxJava实现网络请求与缓存策略
  • 在python中等号左边的都是对象,在matlab中等号a = 3+2 a就是个变量
  • 特征工程学习笔记
  • 无人机行业“黑话”
  • vue的双向数据绑定