2009-04-28 77 views
2

我们目前在WindowsFormsHost的应用程序中使用winforms WebBrowser控件,并通过调用'WebBrowser.ShowPrintDialog()'进行打印。我们遇到了一个问题,因为对话框似乎不是模态的,而且父窗口可以被忽略如果稍后尝试打印,则会造成问题。如何从.net 3.5 SP1中提供的wpf WebBrowser打印?

我一直在寻找,希望做类似的事情自己,当他们有固定的这个问题的新的WPF WebBrowser控件,但能找到没有办法从它打印..

我发现有人在网上说话这样做的:

 PrintDialog printDialog = new PrintDialog(); 
     printDialog.PrintDocument(((IDocumentPaginatorSource)webBrowser.Document).DocumentPaginator, "My App"); 

但是,这将引发的WebBrowser.Document不支持IDocumentPaginatorSource接口异常。

有没有什么方法可以从wpf网页浏览器控件打印?

感谢

回答

4

我使用这一点,它的工作原理:

mshtml.IHTMLDocument2 doc = webBrowser.Document as mshtml.IHTMLDocument2; 
    doc.execCommand("Print", true, null); 
+0

感谢,这工作。不幸的是,即使打印对话框仍然存在,我仍然可以在那里与打印UI进行交互(并关闭)启动打印的UI。你有这个问题吗?打印对话框关闭时如何获取事件的任何想法? – Trev 2009-04-29 15:12:03