Internet Explorer PDF阅读器

问题描述:

我很抱歉为这个问题的长度,但一些背景解释是必需的。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标记,因为可能有使用任何或所有这些方法的解决方案。 –

好的,所以我想出了最终的解决方案。

需求:在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资源管理器。它不会在系统范围内禁用鼠标右键......当我有更好的解决方案时,我会再次更新。 –

我发现了一个很好的部分解决方案。一种叫做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的选项有限。 –