从WebBrowser控件以横向模式打印?

3
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对象设置。有什么方法可以做到这一点吗?谢谢!


我有点困惑?标题说是从Web浏览器控件,但你的问题中又说不是从Web浏览器对象。到底是哪个? - Tony Abrams
我认为有人编辑了我的问题,说它是一个控件。只需参考代码示例,那就是我现在正在使用的确切代码,我希望学习如何在横向模式下打印。 - sooprise
@sooprise 你想把这个保密还是允许用户交互? - Aaron McIver
Aaron的意思是,我猜你想要显示打印对话框还是不想要? - abatishchev
当我尝试时,无法使WebBrowser对象横向打印。我不确定它是否能够做到这一点。我很高兴看到mshtml.dll的参考。 - SeaDrive
显示剩余2条评论
1个回答

4

首先,我建议您使用异步事件模型:

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.execCommandMSDN论坛问题并跟随链接。

这样做更容易,而且更有效率,谢谢。我已经实现了它。 - sooprise
@sooprise:我有一些关于WB控制的经验,并且正在寻找如何更改打印页面位置。如果我发现了什么有趣的东西,我会告诉你的。 - abatishchev
mshtml.IHTMLDocument2 doc = wb.Document as mshtml.IHTMLDocument2; <- 这行代码似乎无法正常工作... - sooprise

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接