2009-04-28 8 views
2

Nous utilisons actuellement un contrôle WinBrowser WebBrowser dans notre application dans un WindowsFormsHost et l'impression en appelant 'WebBrowser.ShowPrintDialog()' Nous avons un problème avec cela dans la boîte de dialogue ne semble pas être modale et la fenêtre parent peut être rejetée causant des problèmes si une impression est tentée plus tard.Comment imprimer à partir de wpf WebBrowser disponible dans .net 3.5 SP1?

Je regardais le nouveau contrôle WPF WebBrowser dans l'espoir qu'ils auront résolu ce problème lorsque vous faites quelque chose de semblable eux-mêmes, mais ne trouve aucun moyen d'imprimer à partir d'elle ..

J'ai trouvé quelqu'un parler en ligne de faire ceci:

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

mais cela jette une exception en tant que WebBrowser.Document ne prend pas en charge l'interface IDocumentPaginatorSource.

Est-il possible d'imprimer à partir du contrôle du navigateur Web wpf?

grâce

Répondre

4

J'utilise cela, et il fonctionne:

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

grâce, qui a travaillé. Malheureusement, j'ai toujours le problème où je peux interagir avec (et rejeter) l'interface utilisateur qui initie l'impression, même si la boîte de dialogue d'impression est toujours là. Avez-vous ce problème? Des idées sur la façon d'obtenir un événement lorsque la boîte de dialogue d'impression est fermée? – Trev

+0

Je ne sais pas, mais je suis assez sûr que la boîte de dialogue d'impression est initiée à partir du code non managé, de sorte qu'il pourrait avoir besoin de plus de travail pour écouter des événements comme ça. – Botz3000

+0

Je vous hais tous les deux, où sont les instructions using, comment instanciez-vous votre webbrowser? –

Questions connexes