在webapplication [没有远程服务器]中显示本地pdf

时间:2015-04-17 08:00:21

标签: javascript html5 internet-explorer pdf pdf.js

我正在开发一个HTML5 / .net POC,其中我在.net(C#)WebBrowser控件中显示了一个本地HTML5 webapp。

该页面是在asp.net MVC中开发的,下载为单个.htm文件(使用Chrome的SingleFile扩展名)并保存在数据库中(或存储在文件系统中,无所谓),加载并显示在内部。 net webbrowser control。

[几乎]一切正常:页面呈现正确,我可以从C#等调用js函数。

但是现在我必须在页面内部显示一些pdf内联。 pdf不是从远程服务器提供的(根本没有服务器),而是从文件系统加载(例如临时文件)。我的想法是在html5应用程序中创建一个类似showPdf(path,pageNum)的js函数,并从.net调用它。

问题是看起来没有办法(至少我找不到)加载本地pdf,使用Mozilla的pdf.js或html标签,我在Chrome控制台中得到“不允许加载本地资源” IE中的“拒绝访问”警告。

我可以尝试使用某种组件/我可以设置选项以允许浏览器加载本地pdf文件吗?

WebBrowser组件使用IE来呈现页面,所以也许我可以更改某种IE选项/密钥注册表(最终会使用这个webapp的机器,我们可以根据需要配置它们)?。

2 个答案:

答案 0 :(得分:0)

您可以尝试传统的锚元素(<a href="file:...">),然后为您的应用启用File Protocol Navigation功能控件。 (并且,虽然看起来很明显,但可能值得确认IE功能控件不能在其他浏览器中启用功能。)

我不知道这会起作用,但考虑到这个问题,这似乎是一种可能的解决方案。

请注意,访问文件对象可能会被其他策略或安全措施禁用访问本地文件系统对象的权限。可能需要更多信息/研究。

希望这会有所帮助......

- Lance

答案 1 :(得分:0)

我忘了写这里是如何解决的: 好吧,它是一个在WinForm WebBrowser控件中显示的webapp,所以我使用this article从JS调用C#方法。 C#方法使用默认的OS pdf阅读器来显示表单内的pdf。