Frage

Ich verwende das Webbrowser-Steuerelement in WinForms und habe jetzt festgestellt, dass Hintergrundbilder, die ich mit CSS anwende, nicht in den Ausdrucken enthalten sind.

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

Bearbeiten:Da ich dies programmgesteuert tun wollte, habe ich mich für diese Lösung entschieden:

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

Eine andere Möglichkeit, damit umzugehen, könnte darin bestehen, einfach den Wert abzulesen und den Benutzer aufzufordern, ihn vor dem Drucken selbst anzupassen.Ich muss zustimmen, dass eine solche Optimierung der Registrierung keine gute Praxis ist, daher bin ich für Vorschläge offen.

Vielen Dank für Ihr Feedback

War es hilfreich?

Lösung

Wenn Sie eine wichtige Systemeinstellung ändern möchten, lesen Sie unbedingt zuerst die aktuelle Einstellung und stellen Sie sie wieder her, wenn Sie fertig sind.

Ich denke darüber nach sehr schlecht Üben Sie zunächst, aber wenn Sie es tun müssen, seien Sie freundlich.

Registry.LocalMachine

Versuchen Sie auch, sich zu ändern LocalUser anstatt LocalMachine - Wenn Ihre App auf diese Weise abstürzt (und das wird der Fall sein), verwirren Sie nur den Benutzer und nicht jeden, der die Maschine verwendet.

Andere Tipps

Ein weiterer Registrierungsschlüssel wäre:HKEY_CURRENT_USER Software Microsoft Internet Explorer Pagesetup Print_background HKEY_LOCAL_MACHINE Software Microsoft Internet Explorer PageSetup Print_background

Der entsprechende HKCU-Schlüssel für diese Einstellung lautet:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Print_Background

Standardmäßig druckt der Browser überhaupt keine Hintergrundbilder.

Im Firefox

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

Im IE

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

In der Oper

* 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; 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top