Как напечатать css-фоновые изображения с помощью элемента управления WebBrowser - PullRequest
3 голосов
/ 07 сентября 2008

Я использую элемент управления webbrowser в winforms и теперь обнаружил, что фоновые изображения, которые я применяю с помощью css, не включены в распечатки.

Можно ли заставить веб-браузер печатать фон отображаемого документа?

Edit: Так как я хотел сделать это программно, я выбрал это решение:

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);

Еще один способ справиться с этим - просто прочитать значение и уведомить пользователя о необходимости настроить его самостоятельно перед печатью. Я должен согласиться с тем, что подобная настройка реестра не является хорошей практикой, поэтому я открыт для любых предложений.

Спасибо за ваши отзывы

Ответы [ 5 ]

2 голосов
/ 19 ноября 2009

Другой ключ реестра будет: HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Internet Explorer \ PageSetup \ Print_Background HKEY_LOCAL_MACHINE \ Программное обеспечение \ Microsoft \ Internet Explorer \ PageSetup \ Print_Background

1 голос
/ 09 сентября 2008

Если вы собираетесь изменить важные настройки системы, сначала прочитайте текущие настройки и восстановите их, когда закончите.

Я считаю это очень плохой практикой в ​​первую очередь, но если вы должны это сделать, тогда будьте добры.

Registry.LocalMachine

Кроме того, попробуйте изменить LocalUser вместо LocalMachine - таким образом, если ваше приложение аварийно завершится (и будет), вы будете только запутывать пользователя, а не всех, кто использует компьютер.

1 голос
/ 15 апреля 2009

Соответствующий ключ HKCU для этой настройки: HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Internet Explorer \ Main \ Print_Background

0 голосов
/ 19 марта 2010
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; 
0 голосов
/ 07 сентября 2008

По умолчанию браузер вообще не печатает фоновые изображения.

В Firefox

* 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)
...