Drucken der Inhalt eines WPF WebBrowser
Ich versuche, drucken Sie den Inhalt eines WPF-WebBrowser-Steuerelement, so dass kein drucken-dialog angezeigt wird, aber ich habe kein Glück.
Ich habe versucht, die folgenden und bin sicher, dass es funktioniert hat:
PrintDialog printDialog = new PrintDialog();
printDialog.PrintDocument(((IDocumentPaginatorSource)browser.Document).DocumentPaginator, "My App");
aber aus irgendeinem Grund bin ich jetzt immer folgende exception:
Unable to cast COM-Objekt des Typs " mshtml.HTMLDocumentClass' Schnittstelle Typ 'System.Windows.Dokumente.IDocumentPaginatorSource'. Dieser Vorgang ist fehlgeschlagen, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit IID '{2C0C27DF-282F-3225-ADCD-CEC68F890EEB}' konnte aufgrund des folgenden Fehler: Schnittstelle Nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).
Das einzige, was ich denken kann, hat sich verändert auf meinem PC ist, habe ich IE8 installiert, seit ich das Letzte ausprobiert, aber wäre das wirklich brechen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Quelle:
http://social.msdn.microsoft.com/Forums/en/wpf/thread/63ae5345-b2ca-45a9-9113-0ddc43e9925b
Für leisen Druck ohne Dialoge, verwenden Sie diesen code:
WebBrowser drucken im hintergrund
Zu vermeiden, die eine Abhängigkeit von MSHTML Sie können einfach tun:
Ich entwickelte die oben genannte Lösung, wenn ich Probleme mit einem WPF-Projekt wurde migriert .Net Core 3 und war mit Tony ' s Antwort beinhaltet, dass die MSHTML-Referenz. Referenzierung in MSHTML .Net Core ist nicht sehr einfach (siehe dies github issue)