网站上打开pdf
文件,都是用浏览器查看pdf
时自带的功能,可以下载打印,最近有一个需求,要求打开pdf
后仅供用户预览,禁止下载打印。网上查了一下,发现有很多前辈都遇到过,解决方法是用pdf.js
。
-
1.下载
官网提供了一个demo
,稍微改一下就可以用了。pdf.js下载
解压之后的文件
-
2.修改
将下载的插件包拷贝到自己的项目中,打开web文件夹
下的viewer.js
将默认的路径置对应的value
的值改为“ ”
3.利用
在页面中打开pdf链接的地方修改成链接到pdf/web/viewer.html
的。例如:
<a id="attach" target="_blank" title="title" href="/pdfjs/web/viewer.html?file=pdf路径">查看</a>
这样点击 查看按钮就可以通过自定义的页面进行访问对应路径的pdf
文件了
这个时候可以看到,打印和下载的按钮都是有的,还有一些其他的功能按钮,接下来就是禁用这些功能
- 4.禁止下载打印
在下载的web/viewer.html
中找到下载打印的button
把要隐藏的按钮加上style="display:none"
就可以了(如果把整个按钮注释的话会报错哦)。效果图是这种=>
安全起见可以把web/viewer.js
中的这两行代码也注释掉。
这样下载和打印的功能按钮就失效了
- 5.注意
虽然隐掉了页面上的下载打印的按钮,但是右键依然可以另存为和打印,所以可以在web/viewer.html
加一个禁止右键。在viewer.html
里加入下边这段代码。
<script type="text/javascript">
// 禁止右键菜单
document.oncontextmenu = function(){ return false; };
// 禁止文字选择
document.onselectstart = function(){ return false; };
// 禁止复制
document.oncopy = function(){ return false; };
// 禁止剪切
document.oncut = function(){ return false; };
// 禁止粘贴
document.onpaste = function(){ return false; };
</script>
这样右键的功能也被禁用了,但是呢,这样只是禁用平时最常用的方式,实际上使用快捷键也是可以打印和下载的,这里就不做赘述,当然如果是为了数据安全,可以在后台为pdf文件加上水印,或者使用各种加密手段。