Internet Explorer PDF阅读器

3

很抱歉这个问题比较长,但需要提供一些背景解释。

背景:

我正在开发一个内部网页应用程序,将在iframe中显示一个pdf文档。 Adobe Reader X提供了“阅读模式”,可以在浏览器中显示pdf。当鼠标悬停在“中心中心”上方时,会删除外壳并添加菜单框到pdf底部。在X之前的版本中,您可以使用JavaScript修改工具栏菜单项。

需求:

我需要在“阅读模式”下显示pdf文档,并删除所有菜单项。运行此应用程序的计算机基本上是信息亭,只有计算机,显示器和鼠标。没有打印机,没有键盘,没有其他交互性。

我的问题是: 如何在Internet Explorer中加载pdf进行阅读,并禁用所有交互,除了滚动。也就是说,没有菜单,没有上下文菜单,以及当鼠标悬停在底部中心时没有“阴影条”。我一直在寻找替代Adobe的方法,有一些很好的方法,但我找到的那些浏览器插件并没有针对IE的插件。

如果有人知道只加载PDF内容的方法,那将是更好的路径。

更多信息:

如果有帮助的话,虽然这是为Internet Explorer构建的,但网页将加载到一个只是全屏浏览器控件的窗体中。

我尝试过的其他事情:

我还尝试在pdf iframe上方定位一个透明的iFrame,仅覆盖显示的内容,但保留滚动条。如果加载任何PDF之外的任何内容,则可以完美运行。如果加载PDF,则所有内容都会显示为空白。使用开发工具栏来删除透明iFrame,PDF看起来很不错。


我添加了C#、JavaScript和Html标签,因为可能有一种或多种方法可以解决这个问题。 - Johnie Karr
2个回答

4
I've found a good partial solution. 一款名为 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中,并删除工具栏、状态栏、消息、导航窗格,但仍允许滚动条。这可以防止出现阴影框菜单,非常好!
用户仍然可以右键单击pdf,因此我将尝试在JavaScript中使用标准的右键单击阻止器,并进行编辑,如果能够实现某些功能。
编辑:
关于URL参数的良好资源可以在此处找到。

PDFObject的网站也是一个很好的资源,可以确定Adobe Reader具备哪些功能。甚至不需要Javascript文件,只需使用他们的指南创建所需的嵌入代码即可。 - Scott Rippey
我正在研究如何做到这一点,使用PDFObject网站作为资源。但我发现一个问题是它不能消除阴影框,只是将其从窗口底部移动到顶部... - Johnie Karr
是的,我认为你无法避免这个问题。Adobe Reader的选项有限。 - Scott Rippey

1

好的,我已经想出了最终解决方案。

需求:

  1. 在“阅读器模式”下加载 PDF,但没有阴影栏
  2. PDF 上下文菜单应该被禁用

通过一些注意事项来解决第一个需求是很容易的。将 iFrame 的源设置为“pathToPdf/document.pdf#toolbar=0&navpanes=0”。这里的注意事项是(至少在 IE 中),一旦它被破坏,那么浏览器需要关闭并重新打开才能再次工作。那么,什么会导致它被破坏呢?

  • 用户右键单击并打开导航窗格按钮。
  • 用户按下键盘上的 Esc 键。

网页加载到 Windows 表单的浏览器控件中,幸运的是,一旦在那里被破坏,它就可以正常工作而无需关闭和重新打开。不过对于正在查看的 PDF 来说仍然可能是个问题。我不必担心 Esc 键,因为该应用程序正在运行在一个 KIOSK 上(基本上只有鼠标没有键盘)。

禁用上下文菜单被证明是最难做的事情。Web浏览器控件有一个“IsWebBrowserContextMenuEnabled”属性,当设置为“False”时,将禁用浏览器的上下文菜单。可能是因为Adobe Reader是一个插件,这不会影响PDF。在Reader X中,没有注册表设置(我找不到),也没有JavaScript方法或一般设置可以禁用上下文菜单。

当我想放弃时,我想起了一些东西。这是一个信息亭,没有必要使用右键。所以解决方案是:修改注册表并关闭内部操作系统的右键单击。要做到这一点,只需打开regedit并转到:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
  • 查找(如果不存在则创建)名为“NoViewContextMenu”的DWORD键。
  • 值1将禁用右键单击,值0将启用。

总结:

  1. 使用"pathToPdf/document.pdf#toolbar=0&navpanes=0"
  2. 在Windows注册表中禁用右键单击

编辑:

注册表修改只能禁用Windows资源管理器中的右键。我们在寻找好的软件解决方案方面没有什么进展,所以我们只能编写自己的定制鼠标驱动程序或者简单地打开鼠标并移除物理触发机制。


1
在测试中,我发现注册表修改只能禁用Windows资源管理器的右键单击功能。它并不能在整个系统范围内禁用鼠标右键...当我有更好的解决方案时,我会再次更新。 - Johnie Karr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接