[英]Internet Explorer PDF Reader
我為這個問題的長度道歉,但需要一些背景解釋。
背景:
我正在開發一個內部Web應用程序,它將在iframe中顯示pdf。 Adobe Reader X提供了一種“讀取模式”,用於在瀏覽器中顯示pdf。 這將刪除shell,並在鼠標位於“中間中心”上方時將菜單框添加到pdf的底部。 在X之前的版本中,您可以使用JavaScript來修改工具欄菜單項。
我需要的:
我需要在“讀取模式”中顯示pdf並刪除所有菜單項。 要運行此應用程序的計算機基本上是一個自助服務終端,實際上是計算機,顯示器和鼠標。 沒有打印機,沒有鍵盤,沒有其他交互性。
我的問題是:如何加載pdf以便在Internet Explorer中閱讀,並禁用除滾動之外的所有交互。 也就是說,當底部中心被鼠標懸停時,沒有菜單,沒有上下文菜單,也沒有“陰影條”。 我一直在尋找Adobe的替代品,有一些很棒的,但我發現有一個瀏覽器插件,沒有IE的插件。
如果有人知道如何加載PDF內容,這將是一個更好的路線。
更多信息:
如果它有幫助,雖然這是為Internet Explorer構建的,但網頁將被加載到一個只有全屏瀏覽器控件的Windows窗體中。
我試過的其他事情:
我還嘗試在pdf iFrame上放置一個透明的iFrame,僅覆蓋顯示的內容,但保留滾動條完好無損。 如果我加載任何東西但是pdf,這就完美了。 如果我加載任何其他網站然后它按預期工作(除了滾輪當然不滾動網頁)。 如果加載了pdf,那么所有出現的都是白色方塊。 使用開發工具欄刪除透明的iFrame,PDF看起來不錯。
我找到了一個很好的部分解決方案。 一種名為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參數的良好資源。
好的,所以我想出了最終的解決方案。
需求:
一些警告可以輕松解決第一個需求。 將iFrame的源設置為“pathToPdf / document.pdf#toolbar = 0&navpanes = 0”。 這里需要注意的是(至少在IE中),一旦打破,瀏覽器需要關閉並重新打開才能再次運行。 那么,有什么可以打破它?
該網頁被加載到Windows窗體的瀏覽器控件中,幸運的是,一旦打破它就可以正常工作而無需關閉和重新打開。 對於正在查看的PDF,仍然可能是一個問題。 我不必擔心轉義鍵,因為應用程序在KIOSK上運行(基本上)並且沒有鍵盤,只有鼠標。
事實證明,禁用上下文菜單是最困難的事情。 Web瀏覽器控件具有“IsWebBrowserContextMenuEnabled”屬性,當設置為“False”時,將禁用瀏覽器的上下文菜單。 可能因為adobe reader是一個插件,這不會影響PDF。 使用Reader X,沒有注冊表設置(我可以找到)或JavaScript方法,或一般設置將禁用上下文菜單。
當我記起一些東西時,我已經准備好放棄了。 這是一個自助服務終端,不需要鼠標右鍵。 所以解決方案; 修改注冊表並關閉內部操作系統的右鍵單擊。 要做到這一點,只需打開注冊表並轉到:
摘要:
編輯:
注冊表黑客只在Windows資源管理器中禁用鼠標右鍵。 我們沒有找到一個好的軟件解決方案,所以我們要么編寫自己的自定義鼠標驅動程序,要么只是彈出鼠標並刪除物理觸發機制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.