Internet Explorer PDF阅读器

时间:2011-12-05 15:44:07

标签: c# javascript html internet-explorer pdf

我为这个问题的长度道歉,但需要一些背景解释。

背景

我正在开发一个内部网络应用程序,它将在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看起来很好。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

需要:

  1. 在“阅读器模式”中加载iFrame中的PDF但没有阴影条
  2. 应禁用PDF上下文菜单
  3. 通过一些警告来解决第一个需求很容易。将iFrame的源设置为“pathToPdf / document.pdf#toolbar = 0& navpanes = 0”。这里需要注意的是(至少在IE中),一旦打破,浏览器需要关闭并重新打开才能再次运行。那么,有什么能打破它?

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

    网页被加载到Windows窗体的浏览器控件中,幸运的是,一旦打破它就可以正常工作而无需关闭和重新打开。对于正在查看的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#toolbar = 0&amp; navpanes = 0”
    2. 禁用Windows注册表中的右键单击
    3. 修改

      注册表黑客只在Windows资源管理器中禁用鼠标右键。我们没有找到一个好的软件解决方案,所以我们要么编写自己的自定义鼠标驱动程序,要么只是弹出鼠标并删除物理触发机制。