4

我在 winforms 中使用 webbrowser 控件,现在发现我使用 css 应用的背景图像不包含在打印输出中。

有没有办法让网络浏览器也打印显示文档的背景?

编辑:由于我想以编程方式执行此操作,因此我选择了此解决方案:

using Microsoft.Win32;

...

RegistryKey regKey = Registry.CurrentUser
                    .OpenSubKey("Software")
                    .OpenSubKey("Microsoft")
                    .OpenSubKey("Internet Explorer")
                    .OpenSubKey("Main");

//Get the current setting so that we can revert it after printjob
var defaultValue = regKey.GetValue("Print_Background");
regKey.SetValue("Print_Background", "yes");

//Do the printing

//Revert the registry key to the original value
regKey.SetValue("Print_Background", defaultValue);

处理这个问题的另一种方法可能是只读取值,并在打印前通知用户自己调整它。我必须同意像这样调整注册表不是一个好习惯,所以我愿意接受任何建议。

感谢您的所有反馈

4

5 回答 5

2

另一个注册表项是:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup\Print_Background HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\PageSetup\Print_Background

于 2009-11-19T19:22:32.190 回答
1

如果您要更改重要的系统设置,请务必先阅读当前设置并在完成后恢复。

我首先认为这是非常糟糕的做法,但如果你必须这样做,那么请善待。

Registry.LocalMachine

此外,尝试更改LocalUser而不是LocalMachine- 如果您的应用程序崩溃(并且它会崩溃),那么您只会混淆用户,而不是使用机器的每个人。

于 2008-09-09T06:35:02.097 回答
1

此设置对应的 HKCU 键是:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Print_Background

于 2009-04-15T12:23:40.113 回答
0

默认情况下,浏览器根本不打印背景图像。

在火狐中

* File > Page Setup > Check Off "Print Background"
* File > Print Preview

在 IE 中

* Tools > Internet Options > Advanced > Printing
* Check Off "Print Background Images and Colors"

在歌剧中

* File > Print Options > Check Off "Print Page Background"
* File > Print Preview (You may have to scroll down/up to see it refresh)
于 2008-09-07T10:24:05.307 回答
0
var sh = new ActiveXObject("WScript.Shell");
key = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Print_Background";
var defaultValue = sh.RegRead(key); 
sh.RegWrite(key,"yes","REG_SZ");
document.frames['detailFrame'].focus(); 
document.frames['detailFrame'].print();
sh.RegWrite(key,defaultValue,"REG_SZ");  
return false; 
于 2010-03-19T06:35:35.780 回答