2009-04-28 51 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