KKFileView在线预览初使用记录,主要解决不可复制等一些限制问题。

因Flash不能用了,所以导致项目的在线预览功能。在网上找了很久,很多都是收费,后来找到了KKFileView。官网也有非常详细的介绍,而且拿到项目修修改改就可以用了,很方便;

官网地址:https://kkfileview.keking.cn/zh-cn/index.html
功能公共演示界面:https://file.keking.cn/index
项目代码:https://gitee.com/kekingcn/file-online-preview

项目部署
直接在官网进行下载源码,进行maven打包,在server下target中找到压缩包,上传到服务器,进行解压,解压后进入bin目录启动startup.sh就可以了

在我使用的过程中,基本都是通过官网文档解决的。
不过我需要在网页进行禁止复制等一些限制,虽然在前台无法避免所有的人,可是对一些查看文员来说已经足够了。
我在官网文档开始没有找到相关资料,后来在代码Issuse中发现了;
https://gitee.com/kekingcn/file-online-preview/issues/I2B2X2

可是这个在我这里解决docx、doc格式,不能解决Excel转换HTML页面禁止复制和图片转换后不允许进行拖拽;

特此来记录一下:

1、docx、doc文档不可复制、F12、右键、打印限制问题;

在commonHeader.ftl文中添加

<#-- 设置浏览器打印为空白内容,防止打印 -->
<style>@media print{body{display:none}}</style>

<script language="Javascript">

    //禁用右键(防止右键查看源代码)
    window.oncontextmenu = function () { return false; }
    //禁止任何键盘敲击事件(防止F12和shift+ctrl+i调起开发者工具)
    window.onkeydown = window.onkeyup = window.onkeypress = function () {
        window.event.returnValue = false;
        return false;
    }
    //如果用户在工具栏调起开发者工具,那么判断浏览器的可视高度和可视宽度是否有改变,如有改变则关闭本页面
    var h = window.innerHeight, w = window.innerWidth;
    window.onresize = function () {
        if (h != window.innerHeight || w != window.innerWidth) {
            window.close();
            window.location = "about:blank";
        }
    }
    /**
     * 禁止右键和复制
     */
    document.oncontextmenu=new Function("event.returnValue=false");
    document.onselectstart=new Function("event.returnValue=false");
</script>

在file-online-preview/server/src/main/resources/static/pdfjs/web/viewer.html添加

<!--设置浏览器打印为空白内容,防止打印-->
    <style>@media print{body{display:none}}</style>

2、转为图片限制拖拽问题;

/ 禁止浏览器默认拖拽,防止拖拽到新的tab窗口
    console.log(document.getElementsByTagName('img'));
    document.getElementsByTagName('img')[0].onmousedown = function(e){
        e.preventDefault()
    };

3、限制Excel转换后复制等操作;

在 FileHandlerService 类 doActionConvertedFile 方法中添加HTML script ;
// 添加sheet控制头
sb.append(“<script src=“js/jquery-3.0.0.min.js” type=“text/javascript”>”);
sb.append(“<script src=“js/excel.header.js” type=“text/javascript”>”);
sb.append(“<link rel=“stylesheet” href=“bootstrap/css/bootstrap.min.css”>”);
// 在这添加下方代码;

// 添加禁止复制功能
            sb.append("<<script language=\"Javascript\">\n" +
                    "\n" +
                    "    //禁用右键(防止右键查看源代码)\n" +
                    "    window.oncontextmenu = function () { return false; }\n" +
                    "    //禁止任何键盘敲击事件(防止F12和shift+ctrl+i调起开发者工具)\n" +
                    "    window.onkeydown = window.onkeyup = window.onkeypress = function () {\n" +
                    "        window.event.returnValue = false;\n" +
                    "        return false;\n" +
                    "    }\n" +
                    "    //如果用户在工具栏调起开发者工具,那么判断浏览器的可视高度和可视宽度是否有改变,如有改变则关闭本页面\n" +
                    "    var h = window.innerHeight, w = window.innerWidth;\n" +
                    "    window.onresize = function () {\n" +
                    "        if (h != window.innerHeight || w != window.innerWidth) {\n" +
                    "            window.close();\n" +
                    "            window.location = \"about:blank\";\n" +
                    "        }\n" +
                    "    }\n" +
                    "    /**\n" +
                    "     * 禁止右键和复制\n" +
                    "     */\n" +
                    "    document.οncοntextmenu=new Function(\"event.returnValue=false\");\n" +
                    "    document.onselectstart=new Function(\"event.returnValue=false\");\n" +
                    "</script>");
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
如果您在使用kkFileView时遇到问题,可以参考以下解决方法: 1. 确认文件类型是否支持:kkFileView支持多种文件类型,但并非所有文件类型都支持。您可以在kkFileView的官方文档中查看支持的文件类型,或者通过试错的方式确认。 2. 确认文件路径是否正确:在使用kkFileView预览文件时,需要提供正确的文件路径。如果路径错误,可能会导致无法预览文件。确保路径正确,可以通过在控制台查看请求的URL,或者在代码中输出路径进行确认。 3. 确认依赖库是否加载:kkFileView是基于jQuery和FileSaver.js开发的,因此在使用前需要确保这两个库已经正确加载。可以在控制台查看是否有相关的报错信息,或者在代码中进行确认。 关于base64报错问题,如果您在使用base64时遇到报错,可以参考以下解决方法: 1. 确认base64编码是否正确:base64编码需要按照规范进行,如果编码不正确可能导致解码失败。可以通过在线base64编码解码工具进行确认。 2. 确认base64编码是否包含非法字符:在进行base64编码时,可能会出现一些非法字符,比如空格、换行符等。这些非法字符会导致解码失败,需要在编码前进行过滤。 3. 确认解码方式是否正确:base64编码可以使用多种方式进行解码,比如使用atob()函数、使用Blob对象等。需要根据实际情况选择合适的解码方式。 4. 确认数据是否被篡改:在传输base64编码的数据时,可能会被篡改或者损坏,导致解码失败。可以通过检查数据的完整性或者使用其他传输方式进行确认。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝味的真知棒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值