Question

J'utilise le contrôle du navigateur Web dans Winforms et j'ai découvert maintenant que les images d'arrière-plan que j'applique avec CSS ne sont pas incluses dans les impressions.

Existe-t-il un moyen pour que le navigateur Web imprime également l'arrière-plan du document affiché ?

Modifier:Puisque je voulais le faire par programmation, j'ai opté pour cette solution :

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

Une autre façon de gérer cela pourrait être de simplement lire la valeur et d'informer l'utilisateur de l'ajuster lui-même avant l'impression.Je dois reconnaître que modifier le registre de cette manière n'est pas une bonne pratique, je suis donc ouvert à toute suggestion.

Merci pour tous vos commentaires

Était-ce utile?

La solution

Si vous envisagez de modifier un paramètre système important, assurez-vous d'abord de lire le paramètre actuel et de le restaurer lorsque vous avez terminé.

je considère cela très mauvais entraînez-vous en premier lieu, mais si vous devez le faire, soyez gentil.

Registry.LocalMachine

Essayez également de changer LocalUser au lieu de LocalMachine - de cette façon, si votre application plante (et ce sera le cas), vous ne ferez que confondre l'utilisateur, pas tous ceux qui utilisent la machine.

Autres conseils

Une autre clé de registre serait :Hkey_current_user logiciel Microsoft Internet Explorer PageSetup print_background Hkey_Local_Machine Software Microsoft Internet Explorer PageSet print_background

La clé HKCU correspondante pour ce paramètre est :HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Print_Background

Par défaut, le navigateur n'imprime pas du tout les images d'arrière-plan.

Dans Firefox

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

Dans IE

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

À l'Opéra

* 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; 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top