我有一个 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 以便在表单内查看,而不是在另一个窗口中查看。
据我所知,WinForms 中的 Web 浏览器控件依赖于默认的 PDF 阅读器(通常是 Acrobat Reader)来显示 PDF 文件。如果您需要显示 PDF 文件而不需要安装任何其他软件,那么您可能需要在应用程序中使用 PDF 渲染库。 PDF 渲染库的一些示例:
另一种选择是创建一个本地 HTML5 页面,使用项目 pdf.js 呈现 PDF 文件,然后将该页面嵌入到您的 Web 浏览器控件中。但是这只适用于带有 IE 9.0 或更高版本的 Windows 系统。
我遇到了完全相同的问题并尝试了与您相同的操作。这就是最终为我解决的问题。我安装了 Foxit PDF Reader,但这也可能适用于其他 PDF 阅读器。我重新安装了Foxit,并在安装过程中选择了“在网络浏览器中打开PDF文件”选项。 (这可能不是该选项的确切名称 - 我是凭记忆来的。)