2012-04-12 458 views
5

有没有办法在网页上嵌入PDF文档而无需同时启用下载?如果可能的话,我更喜欢html5/css3解决方案。如果没有其他可行的方法,我会去别的。在网页上嵌入PDF并阻止下载

回答

3

2017年注:此功能已移至位置和实现已更改,因为它最初的回答。


Google Viewer提供了一个solution

使用它为您生成的iframe。

+1

它真正地不是可以使用iframe来保存文档,但在边框的右上角有一个全屏模式按钮,在全屏模式下,可以打印到PDF。 – 71GA 2012-06-25 20:01:36

+0

上述方法不会禁用下载功能。 – nottinhill 2013-10-01 00:13:56

+0

您可以使用PHP更改生成的iframe的代码(将js文件的相对路径从相对路径更改为绝对路径)并禁用打印按钮。 – aghoshx 2014-03-07 04:54:41

3

简短的答案是,它不能做到。在没有任何转换的情况下查看PDF文档的唯一方法是通过Adobe PDF插件,并且总是允许保存文档。最重要的是,使用各种工具来获取PDF的URL并从那里下载它是微不足道的。

如果你想避免发送实际的PDF文档,你可以创建一个服务器端脚本的PDF文档转换为一系列幕后PNG或JPG图像。例如,您可以用ghostscript来做到这一点。

但随后,该文件的实际内容仍达到用户,只有在不同的格式。如果这是不是你满意的,有varioustechniques,你可以用它来防止用户保存图像,但这些很容易被足够精通技术的用户规避。

+0

我可以至少删除PDF插件的控制栏?至少普通用户不会知道如何下载它。哦,我可能不得不阻止右键点击。 – 71GA 2012-04-12 19:05:53

+0

您可以使用任何可用的PDF光栅器的面世, – 2013-06-17 05:56:23

3

实际上,您可以在Google云端硬盘选项“阻止观众下载”中进行调整。 然后将PDF文件设置为公开,这样每个人都可以在Viewer中查看PDF,但没有人可以下载它。 我希望,这将有助于一些。

+1

它将PDF转换为PNG,所以你仍然可以保存它,所以这不会帮助... – Legionar 2014-04-23 14:50:09

1

您可以使用SlideShare,您可以设置读取密码,防止用户在设置中下载,甚至创建一个秘密链接,因此只有拥有它的用户才能打开它。我相信有办法规避这种情况,但至少这不是直接的。

0

是的。是的,有:

<div id="pdf"> 
    <object width="100%" height="650" type="application/pdf" data="[ImageURLHere]#zoom=85&scrollbar=0&toolbar=0&navpanes=0" id="pdf_content" style="pointer-events: none;"> 
     <p>Insert your error message here, if the PDF cannot be displayed.</p> 
    </object> 
</div> 

pointer-events: none造型也将阻止用户右键点击PDF和下载。

+0

如果用户使用“查看页面源”会怎么样?比他仍然可以得到正确的网址? – 71GA 2017-11-05 20:32:16

+1

我在我的Angular 4应用程序上试了一下,它只是显示了基本的index.html页面。我试图挖掘到控制台选项卡,并找不到任何地方的资产。 – FiringBlanks 2017-11-06 05:37:27

1

您也可以下载PDF.js和修改这2个文件:viewer.html和viewer.js,删除/修改相应的按钮/行动,以禁止下载/打印,并且可以禁用furtherly右键菜单项。