当前位置: 首页 > 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.xdnf.cn/news/1327069.html

相关文章:

  • 浅看架构理论(二)
  • ‌关于人工智能(AI)的发展现状和未来趋势的详细分析!
  • Kubernetes 简介
  • 【SpringBoot】Dubbo、Zookeeper
  • 【网络运维】Ansible roles:角色管理
  • Android Studio Git提交环境变量问题总结
  • NestJS 依赖注入方式全解
  • 源代码安装部署lamp
  • AI Deep Research 思维链简介
  • 微服务-06.微服务拆分-拆分原则
  • 云手机矩阵:重构企业云办公架构的技术路径与实践落地
  • OpenSSL与OpenSSH的关系
  • SpringBoot-集成POI和EasyExecl
  • PG靶机 - Pebbles
  • 瑞萨e2studio:HardwareDebug配置项详解
  • 主从切换是怎么保证数据一致的?从库为什么会延迟
  • ReLens「Focus DSLR 大光圈虚化相机」v4.1.2 f 解锁付款版 —一款专业大光圈和单反级背景虚化编辑软件
  • 如何将任意文件一键转为PDF?
  • 计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
  • AJAX (一)
  • F003疫情传染病数据可视化vue+flask+mysql
  • JavaSSM框架从入门到精通!第二天(MyBatis(一))!
  • flink+clinkhouse安装部署
  • 当GitHub宕机时,我们如何协作
  • Netty内存池中ChunkList详解
  • 决策树算法学习笔记
  • 设计模式笔记_行为型_解释器模式
  • 技术分享:跨域问题的由来与解决
  • 关于诸多编程语言类型介绍
  • AP6275S AMPAK正基WiFi6模块方案与应用