Печать в ландшафтном режиме из элемента управления WebBrowser? - PullRequest
3 голосов
/ 11 февраля 2011
System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser();

wb.DocumentStream = new FileStream("C:\a.html", FileMode.Open, FileAccess.Read);
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
    Application.DoEvents();
}
wb.Print();

Я знаю, как установить ориентацию страницы из объекта PrinterDocument, но не из объекта WebBrowser.Есть ли способ сделать это?Спасибо!

1 Ответ

4 голосов
/ 11 февраля 2011

Сначала я рекомендую использовать асинхронную модель события:

wb.DocumentCompleted += wb_DocumentCompleted;

private void wb_DocumentCompleted (object sender, WebBrowserDocumentCompletedEventArgs e)
{
    ((WebBrowser)sender).Print();
}

Для печати (добавить ссылку на Microsoft.mshtml.dll):

mshtml.IHTMLDocument2 doc = wb.Document.DomDocument as mshtml.IHTMLDocument2;
doc.execCommand("print", showUI, templatePath);

См. IHTMLDocument2.execCommand , MSDN форум вопрос и перейдите по ссылкам.

...