在WebBrowser控件上显示PDF不起作用

时间:2013-05-15 15:26:38

标签: c# .net winforms pdf webbrowser-control

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

我的代码非常简单:

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

它没有用。它向我展示了一个带有&#34; X&#34;。

的白页

但如果我这样做了:

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

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

另外,如果我尝试做类似

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

它向我展示了谷歌,所以我认为Web Browser Control

的配置没有任何问题

有什么想法吗?我将无法安装Acrobat Reader,因此使用ActiveX组件不是一个选项(此项目也在x64中,并且我已经读过这个组件工作不正常在x64)。

我想显示pdf仅用于在表单内查看,而不是在另一个窗口中查看。

1 个答案:

答案 0 :(得分:4)

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

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

另一种选择是创建一个本地HTML5页面,使用项目pdf.js呈现PDF文件,然后将该页面嵌入Web浏览器控件。但是this will only work on Windows systems with IE 9.0 or above