2011-12-05 174 views
3

我很抱歉爲這個問題的長度,但一些背景解釋是必需的。Internet Explorer PDF閱讀器

背景:

我工作的一個內部Web應用程序,將顯示在iframe的PDF文件。 Adobe Reader X提供了一個「讀取模式」,用於在瀏覽器中顯示PDF。當鼠標位於「中間中心」上時,這將刪除外殼並在PDF的底部添加一個菜單框。在X之前的版本中,您可以使用JavaScript來修改工具欄菜單項。

我需要什麼:

我需要顯示在「閱讀模式」,並刪除所有菜單項的PDF文件。運行這個應用程序的計算機基本上是一個亭子,實際上是一臺計算機,顯示器和鼠標。沒有打印機,沒有鍵盤,沒有其他交互性。

我的問題是這樣的: 我怎樣才能加載pdf在Internet Explorer中閱讀,並禁用除滾動以外的所有交互。也就是說,沒有菜單,沒有上下文菜單,並且當底部中心被掩蓋時沒有「陰影條」。我一直在尋找Adobe的替代品,還有一些很棒的,但我發現有一個瀏覽器插件,沒有IE的插件。

如果有人知道一種方法來加載PDF內容,這將是一條更好的路線。

更多信息:

如果有幫助,而這是正在修建的Internet Explorer,該網頁將被加載到Windows窗體,這只是一個全屏幕的瀏覽器控件。

我試過其他的事情:

我也曾嘗試對PDF的iFrame的頂部放置一個透明的iFrame,只覆蓋了顯示的內容,但保留完好的滾動條。這工作完美,如果我加載任何東西,但一個PDF。如果我加載了任何其他網站,那麼它按預期工作(除了滾動滾輪當然不會滾動網頁)。如果加載了pdf,那麼所有可能出現的都是白色方塊。使用開發工具欄刪除透明的iFrame,PDF看起來不錯。

+0

我已經添加了C#,JavaScript和Html標記,因爲可能有使用任何或所有這些方法的解決方案。 –

回答

1

好的,所以我想出了最終的解決方案。

需求:在iFrame的

  1. 加載PDF中的 「閱讀模式」,但沒有影子吧
  2. PDF上下文菜單中應禁用

解決首先需要的是容易一些警告。將iFrame的源設置爲「pathToPdf/document.pdf#toolbar = 0 & navpanes = 0」。這裏的注意事項是(至少在IE中)一旦發生這種情況,瀏覽器需要關閉並重新打開才能重新工作。那麼,什麼可以打破它?

  • 用戶右鍵單擊並打開導航窗格按鈕。
  • 用戶按下鍵盤上的退出按鈕。

該網頁被加載到窗體的瀏覽器控件中,幸運的是,一旦在那裏打開,它就可以正常工作而不會關閉並重新打開。可能仍然是一個問題,但PDF正在被查看。我不必擔心退出鍵,因爲應用程序在KIOSK(基本上)上運行,並且沒有鍵盤,只有一個鼠標。

禁用上下文菜單被證明是最困難的事情。 Web瀏覽器控件具有「IsWebBrowserContextMenuEnabled」屬性,當設置爲「False」時,將禁用瀏覽器的上下文菜單。可能是因爲Adobe Reader是一個插件,這不會影響PDF。使用Reader X時,沒有註冊表設置(我可以找到)或JavaScript方法,或沒有禁用上下文菜單的常規設置。

當我想起某件事時,我準備放棄。這是一個信息亭,不需要鼠標右鍵。所以解決方案;修改註冊表並關閉內部操作系統的右鍵單擊。要做到這一點只需打開註冊表編輯器並轉到:

  • HKEY_CURRENT_USER \ SOFTWARE \微軟\的Windows \ CurrentVersion \政策\探險
  • 查找(或創建如果它不存在)一個名爲 「NoViewContextMenu」 的DWORD鍵。
  • 值爲1將禁用右鍵單擊,將啓用0。

摘要:

  1. 使用 「pathToPdf/document.pdf#工具欄= 0 & navpanes = 0」
  2. 禁用Windows註冊表中右擊

編輯:

Th註冊表黑客只能在Windows資源管理器中禁用鼠標右鍵。我們沒有找到一個好的軟件解決方案的運氣,所以我們留下了寫我們自己的自定義鼠標驅動程序或只是彈出打開鼠標和刪除物理觸發機制。

+1

在測試中,我發現註冊表黑客只能禁用右鍵單擊Windows資源管理器。它不會在系統範圍內禁用鼠標右鍵......當我有更好的解決方案時,我會再次更新。 –

4

我發現了一個很好的部分解決方案。一種叫做PDFObject的產品。

使用它,我可以在下面的JavaScript添加到我的網頁:

function embedPDF() { 
     var myPDF = new PDFObject({ 
      url: 'PathToPdf.pdf', 
      pdfOpenParams: { 
       scrollbars: '1', 
       toolbar: '0', 
       statusbar: '0', 
       messages: '0', 
       navpanes: '0' 
      } 
     }).embed('DivToLoadPdfInto'); 
    } 

    window.onload = embedPDF; 

這將嵌入到PDF一個div和刪除工具欄,狀態欄,消息,navpanes,但仍然允許滾動條。這可以防止出現陰影框菜單,這太棒了!

用戶仍然可以右鍵單擊pdf,這樣我就可以嘗試使用JavaScript中的標準右鍵單擊攔截器並編輯,如果我能找到某些工作。

編輯:

的URL參數的很好的資源,可以發現here

+0

PDFObject的網站也是確定Adobe Reader功能的極好資源。 JavaScript文件甚至不是必需的,您可以使用他們的指南來創建您需要的嵌入代碼。 –

+0

我正在研究如何使用PDFObject網站作爲資源。我發現的一個問題是,它並沒有消除陰影框,它將它從窗口的底部移動到窗口的頂部... –

+0

是的,我認爲你不能避免這種情況。 Adobe Reader的選項有限。 –