[英]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.