Domanda

Sto utilizzando il controllo webbrowser in winforms e scoperto ora che le immagini di sfondo che ho applicato con i css non sono inclusi nella stampa.

C'è un modo per rendere il webbrowser stampa lo sfondo del documento visualizzato troppo?

Edit:Da quando ho voluto fare questo a livello di programmazione, ho optato per questa soluzione:

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

Un altro modo per gestire questo potrebbe essere solo leggere il valore, e di notificare all'utente di regolare se stesso prima della stampa.Devo ammettere che modificando il registro di sistema come questo non è una buona pratica, quindi sono aperto a qualsiasi suggerimento.

Grazie per tutti i vostri commenti

È stato utile?

Soluzione

Se avete intenzione di andare e modificare importanti impostazioni di sistema, assicurarsi di leggere prima la corrente e poi ripristinarlo quando si è fatto.

Considero questo molto male la pratica, in primo luogo, ma se si deve fare è quindi di essere gentile.

Registry.LocalMachine

Inoltre, provare a cambiare LocalUser invece di LocalMachine - in questo modo se l'applicazione si blocca (e), allora si avrà solo confuso l'utente, non tutti coloro che usano la macchina.

Altri suggerimenti

Un'altra chiave di registro sarebbe :HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup\Print_Background HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\PageSetup\Print_Background

La corrispondente chiave HKCU per questa impostazione è:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Print_Background

Per impostazione predefinita, il browser non stampare immagini di sfondo a tutto.

In Firefox

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

In IE

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

In Opera

* 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; 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top