从WPF WebBrowser打印背景颜色

时间:2011-05-19 18:06:50

标签: c# wpf printing browser

目前,我正在打印WPF WebBrowser的内容,如下所示:

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

我的HTML内容包含带有背景颜色的表格。目前,当我打印内容时,背景颜色不打印 - 一切都是纯白色。有没有办法告诉WebBrowser打印背景颜色?

此外,这仍然会导致弹出打印对话框。有没有人知道打印内容对话框的命令是什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

假设您使用的是“SHDocVw.WebBrowser”,则可以使用ExecWB命令。要在没有对话框的情况下进行打印,请使用OLECMDEXECOPT_PROMPTUSER1)常量。您还可以传递IE打印模板(只是一个HTML文件),以便更好地控制页面的显示方式。

就是这样(取自this MSDN问题)

browser.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT,
               SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, 
               "print_template.html", ref nullObject);

对于背景,它似乎是您可以在打印模板的LayoutRect中指定的选项之一。所有打印对话框设置均为stored in the registry,但最好使用打印模板,因为它不会更改系统范围的设置。