从 WPF Web 浏览器打印背景颜色

本文关键字:背景 颜色 打印 浏览器 WPF Web | 更新日期: 2023-09-27 17:57:05

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

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

我的 HTML 内容具有带背景颜色的表格。目前,当我打印内容时,背景颜色不打印 - 一切都是纯白色。有没有办法告诉Web浏览器也打印背景颜色?

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

多谢!

从 WPF Web 浏览器打印背景颜色

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

它是这样的(取自这个MSDN问题)

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

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