【问题标题】:Show local pdf inside webapplication [w/o remote server]在 web 应用程序中显示本地 pdf [w/o 远程服务器]
【发布时间】:2015-04-17 08:00:21
【问题描述】:

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

该页面在 asp.net MVC 中开发,下载为单个 .htm 文件(使用 Chrome 的 SingleFile 扩展名)并保存在数据库中(或存储在文件系统中,没关系),加载并显示在 .网络浏览器控制。

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

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

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

是否有某种我可以尝试的组件/我可以设置的选项以允许浏览器加载本地 pdf?

WebBrowser 组件使用 IE 来呈现页面,所以也许我可以更改某种 IE 选项/键注册表(最终将使用此 webapp 的机器是已知的,我们可以根据需要对其进行配置)?。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    希望这会有所帮助...

    -- 兰斯

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-13
        • 2012-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-14
        相关资源
        最近更新 更多