2012-04-12 403 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右鍵菜單項。