4

我有一个 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");

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

有任何想法吗?我无法安装 Acrobat Reader,因此不能选择使用 ActiveX 组件(此外,该项目已在其中,x64并且我已阅读该组件在 中运行不佳x64)。

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

4

1 回答 1

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

于 2013-05-15T15:49:16.493 回答