能用浏览器查看PDF但禁止下载的办法

大家好!
我想用网上介绍的pdf.js办法去掉浏览PDF文档时的下载按钮,尝试程序如图1。
奇怪的是,如果用HBuilder中绑定的浏览器来执行保存的newpdf.html文件,结果是完全正常的,能浏览且隐藏了下载按钮图2。但若在网页文件目录中直接双击保存的newpdf.html文件,图3,则无法显示pdf文档,系统提示找不到PDF文件,4。
不知这是原因所致?如何改正?烦请高人指点一下,谢谢!

img

img

img

img

edeg浏览器的设置里勾选用浏览器打开office文件,或是勾选每次下载时询问,询问时选择打开

我已试过,无论是Edge,Firefox,IE,Google...都无法通过网页文件目录成功运行,但只要将其绑定到HBuilder后却都能成功运行。

即使改用较低版本的pdf.js(1.1.159),而且不对viewer.html做任何修改,甚至保留viewer.js中的默认pdf路径设置:var DEFAULT_URL = 'compressed.tracemonkey-pldi-09.pdf';
将图1中的程序修改后,直接从目录运行时也还是报错的。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <embed width="100%" height="800" src="pdfjs/web/viewer.html"></embed>
    </body>
</html>

img

由于浏览器安全限制,你必须设置local server才能使pdf.js正常工作。
https://github.com/mozilla/pdf.js/issues/12078

你把你的pdf文件放在别的盘,别放在C盘。你这种应该是路径问题。

img


这个是相对路径。
补充:
运行viewer.html需要在服务器环境上运行才有效。(我用的phpStudy创建的环境)
4.实际项目中文件的位置可能与demo中的文件位置有出入,下面理出来可能需要改的文件地址,具体地址怎么改要看你文件的位置
例如 : viewer.html页面、在viewer.css文件里,里面的背景图片地址要修改、在viewer.js文件里
5.打开pdf文件
在viewer.js中检索DEFAULT_URL 得到这个
后面就是打开的pdf文件,这样只能打开这个pdf文件,无法动态打开pdf文件
在viewer.js里,先把DEFAULT_URL后面的pdf文件去掉,
当你点击某个pdf文件时,获取他的文件地址,再打开这个这种格式的地址就可以打开对应的pdf文件,Viewer.html的地址+?file=+pdf文件地址 注意pdf文件的相对地址
例子:http://localhost:5697/viewer.html?file=/abc.pdf
6. 后来移到自己vs的c#后台环境中时出现问题,语言系统和pdf里中文无法显示,那两个文件夹里的文件都无法加
直接访问404链接都出现
如果.properties文件类型和.bcmap文件类型服务中没有mime类型,需要添加对应mime类型,网上的很多资料都是在电脑里的iis里添加mime类型,半天都找不到iis,还需要安装IIS,太麻烦了,而且你只能改自己电脑,其他电脑无法修改,简直浪费生命,还有一个方案是在后台服务Web.config里添加mime类型,找到后台的Web.config,在里面添加

<system.webServer>
<staticContent>
        <mimeMap fileExtension=".properties" mimeType="application/octet-stream" />
        <mimeMap fileExtension=".bcmap" mimeType="application/octet-stream" />
 </staticContent>
</system.webServer>

如果不知道properties、bcmap的文件类型就在mimeType填application/octet-stream

忽然想到一种办法——用访问服务器的方式运行目录中的文件。为此我试着在浏览器中输入
http://localhost/abc/newpdf.html网址,
果然成功了!Edge、Google、Firefox、360急速浏览器都是可以的。问题看来解决了,谢谢回复的朋友们!