使用WebBrowser控件在WPF中显示本地PDF文件

8
我正在尝试在WebBrowser-Control中显示本地PDF文件。 我不想使用Adobe库,因为它们不支持64位。 现在,我已经有了显示PDF的代码,但只有当它不在本地硬盘驱动器上时才能显示。 当我右键单击WebBrowser-Control并显示HTML的源代码时,我将其保存为HTML文件以检查HTML代码是否正确工作。 好吧,它可以工作。
我的窗口只包含一个最大化的WebControl。 我认为问题在于本地Internet Explorer的安全设置。 我读到一个自定义IInternetSecurityManager可以解决问题,但我不知道如何实现它... :/
我使用C#和.NET Framework 4.0
这是我的代码:
    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {            
        string url = "C:/test.pdf";
        string html = "<!-- saved from url=(0014)about:internet -->\n<html>\n<body>\n<embed src=\"" + url + "\" width=\"100%\" height=\"100%\"/>\n</body>\n</html>";
        webBrowser.NavigateToString(html); // System.Windows.Controls.WebBrowser
    }

如果我直接在IE中打开HTML代码,那么“从URL保存”部分才能正常工作,请告诉我该怎么做,让这段代码可以正常运行……或许你有更好的解决方案。感谢你的帮助!

祝好, Chris

1个回答

16

只需使用

webBrowser.Navigate("file:///" + url);

4
在我的情况下,这适用于Win7,但如果我在Win8.1上运行我的应用程序,文件将被IE下载。 - anthoLB29
3
你需要安装某种PDF插件(例如Adobe Reader),这样IE才能显示该文件。然后它就不会被下载了。 - chris6523

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接