Как распечатать фоновые изображения с применением CSS с помощью элемента управления WebBrowser

StackOverflow https://stackoverflow.com/questions/48278

Вопрос

Я использую элемент управления веб-браузером в winforms и теперь обнаружил, что фоновые изображения, которые я применяю с помощью 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);

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

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

Это было полезно?

Решение

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

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

Registry.LocalMachine

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

Другие советы

Другой ключ реестра будет:Hkey_current_user Software Microsoft Internet Explorer pagesetup print_background hkey_local_machine Software Microsoft Internet Explorer pagesetup print_background

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

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

В Firefox

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

В ИЕ

* 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)
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; 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top