繁体   English   中英

Internet Explorer PDF阅读器

[英]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参数的良好资源。

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

需求:

  1. 在“阅读器模式”下在iFrame中加载PDF但没有阴影条
  2. 应禁用PDF上下文菜单

一些警告可以轻松解决第一个需求。 将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 \\政策\\ Explorer中
  • 查找(或创建它是否存在)名为“NoViewContextMenu”的DWORD键。
  • 值为1将禁用右键单击,0将启用。

摘要:

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

编辑:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM