在网络浏览器控件上显示 PDF 不起作用

问题描述 投票:0回答:2

我有一个 test.pdf,我想将其显示在我的表单中。

我的代码很简单:

public Form1()
        {
            InitializeComponent();
            this.wbPdf.Navigate(@"file:///<fullpath>\test.pdf#toolbar=0");
        }

而且它不起作用。它向我展示了一个带有“X”的白页。

但是如果我这样做:

this.wbPdf.Navigate(@"file:///<fullpath>\test.pdf#toolbar=0", true);

IE 打开,显示了我的 pdf。当然,我尝试在第二个参数中使用

false
,但它不起作用。

另外,如果我尝试做类似的事情

this.wbPdf.Navigate(@"http://www.google.com");

它给我展示了google,所以我认为

Web Browser Control

的配置没有任何问题

有什么想法吗?我无法安装 Acrobat Reader,因此不能选择使用 ActiveX 组件(此外,该项目位于

x64
中,并且我了解到该组件在
x64
中运行得不太好)。

我只想显示 pdf 以便在表单内查看,而不是在另一个窗口中查看。

c# .net winforms pdf webbrowser-control
2个回答
5
投票

据我所知,WinForms 中的 Web 浏览器控件依赖于默认的 PDF 阅读器(通常是 Acrobat Reader)来显示 PDF 文件。如果您需要显示 PDF 文件而不需要安装任何其他软件,那么您可能需要在应用程序中使用 PDF 渲染库。 PDF 渲染库的一些示例:

  • MuPDF 带有 .net 包装器的 GPL/商业查看器,您需要商业许可证才能在商业闭源应用程序上使用。
  • Amyuni PDF Creator .Net 用于编辑或显示 PDF 文件的商业库。 免责声明:我目前是该库的开发人员。

另一种选择是创建一个本地 HTML5 页面,使用项目 pdf.js 呈现 PDF 文件,然后将该页面嵌入到您的 Web 浏览器控件中。但是这只适用于带有 IE 9.0 或更高版本的 Windows 系统


0
投票

我遇到了完全相同的问题并尝试了与您相同的操作。这就是最终为我解决的问题。我安装了 Foxit PDF Reader,但这也可能适用于其他 PDF 阅读器。我重新安装了Foxit,并在安装过程中选择了“在网络浏览器中打开PDF文件”选项。 (这可能不是该选项的确切名称 - 我是凭记忆来的。)

© www.soinside.com 2019 - 2024. All rights reserved.