2013-04-17 152 views
0

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

我知道Adobe Reader与打印命令有一个COM接口。这个界面是否也可以在MSIE插件中使用?如何从WPF代码访问它,并且只能访问WebBrowser控件?

感谢您的建议!

回答

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添加到您的项目的引用。