如何打印WPF WebBrowser控件中显示的PDF文件

时间:2013-04-17 10:16:37

标签: c# wpf pdf printing webbrowser-control

我有一个WPF应用程序,它使用标准的WebBrowser控件实现一个简单的Web浏览器。当用户导航到PDF文档时,文档将在MSIE的标准Adobe Reader插件中的WebBrowser控件中内嵌显示。现在我需要以编程方式打印文件。我该怎么做?

我知道Adobe Reader有一个带有print命令的COM接口。这个界面也可以在MSIE插件中使用吗?如何从WPF代码访问它,我只能访问WebBrowser控件?

感谢您的建议!

1 个答案:

答案 0 :(得分:1)

这是在WPF WebBrowser控件中打印文档的方式,无论它是HTML还是PDF:

private void Print_Click(object sender, RoutedEventArgs e)
{
    // Try to print it as Html
    var doc = webBrowser.Document as IHTMLDocument2;
    if (doc != null)
    {
        doc.execCommand("Print", true, 0);
        return;
    }

    // Try to print it as PDF
    var pdfdoc = webBrowser.Document as AcroPDFLib.AcroPDF;
    if (pdfdoc != null)
    {
        pdfdoc.Print();
    }
}

对于PDF打印,您必须将AcroPDFLib添加到项目的参考文献中。