在 WebBrowser Control 上显示 PDF 不起作用

Gon*_*o.- 4 .net c# pdf webbrowser-control winforms

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

我的代码很简单:

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

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

但如果我这样做:

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

IE打开并显示我的pdf。当然,我尝试false在第二个参数中使用,但它不起作用。

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

this.wbPdf.Navigate(@"http://www.google.com");
Run Code Online (Sandbox Code Playgroud)

它向我展示了谷歌,所以我认为没有任何配置问题 Web Browser Control

有任何想法吗?我无法安装 Acrobat Reader,因此不能选择使用 ActiveX 组件(此外,该项目已启动,x64而且我已经了解到该组件在x64.

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

yms*_*yms 5

AFAIK,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 系统