在WPF WebBrowser中显示PDF

时间:2014-10-26 07:22:22

标签: c# wpf

在我的电脑上运行正常,但在某些电脑上文件无法打开,WebBrowser会显示错误,文件将在默认的PDF程序而不是WebBrowser中打开。 我的代码:

Uri GuideURI = new Uri(String.Format("file:///{0}/../PDFs/" + link + ".pdf", Directory.GetCurrentDirectory()));
PDF_Web_Browser.Navigate(GuideURI);

2 个答案:

答案 0 :(得分:1)

也许是因为WebBrowser使用了Interneet Explorer的引擎。如果该人没有为此安装扩展,或者使用旧版本的IE,他将无法在WebBrowser中打开PDF。

答案 1 :(得分:1)

解决此问题的一种方法可能是不依赖于PC的PDF阅读器软件。 您可以使用MuPDF作为库从PDF中提取文本,也可以用XML格式编写内容,然后导航到该文件。

如果您不想走这么远,那么当您尝试在没有所需功能的PC上显示PDF文件时,您可以显示错误消息,以便在WebBrowser中打开它({ {3}})。

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    {
        string url = e.Url.ToString();
        if (url.StartsWith("res://ieframe.dll/navcancl.htm") && url.EndsWith("pdf"))
        {
            e.Cancel = true;
            MessageBox.Show("Cannot open PDF!");
        }
    }

或者你甚至可以混合使用它们。如果WebBroswer无法打开PDF文件,您可以编写一条消息,例如" PDF插件未检测到"然后显示在MuPDF库的帮助下生成的XML文件。