2008-09-07 12 views
3

Ich benutze das Webbrowser-Steuerelement in winforms und entdeckte jetzt, dass Hintergrundbilder, die ich mit CSS anwenden, nicht in den Ausdrucken enthalten sind.So drucken Sie CSS-Hintergrundbilder mit WebBrowser Steuerelement

Gibt es eine Möglichkeit, den Webbrowser den Hintergrund des angezeigten Dokuments auch drucken zu lassen?

Edit: Da ich dies programmatisch tun wollte, entschied ich mich für diese Lösung:

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

andere Art und Weise zu handhaben könnte sein, nur den Wert zu lesen, und den Benutzer benachrichtigen diese sich anpassen, bevor Drucken. Ich muss zustimmen, dass das Anpassen mit der Registrierung keine gute Übung ist, also bin ich offen für irgendwelche Vorschläge.

Vielen Dank für Ihre Rückmeldung

Antwort

1

Wenn Sie eine wichtige Systemeinstellung gehen, und ändern Sie gehen, stellen Sie sicher, zuerst zu lesen die aktuelle Einstellung und stelle sie wieder her, wenn du fertig bist.

Ich halte dies sehr schlecht Praxis in erster Linie, aber wenn Sie es tun müssen, dann sei nett.

Registry.LocalMachine 

Versuchen Sie auch, LocalUser statt LocalMachine zu ändern - auf diese Weise, wenn Ihre Anwendung abstürzt (und es wird), dann nur Sie den Benutzer verwechselt, nicht jeder, der die Maschine verwendet.

0

Standardmäßig druckt der Browser Bilder Hintergrund nicht alle an.

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

Die entsprechende HKCU Schlüssel für diese Einstellung ist: HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main \ Print_Background

2

Ein anderer Registrierungsschlüssel wäre: HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Pagesetup \ Print_Background HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Internet Explorer \ PageSetup \ Print_Background

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;