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
这样就可以了