2014-11-16 7 views
7

sto scrivendo applicazione con WPF WebBrowser controllo. La sua fonte è il risultato di xml/xslt sourse dal database.WebBrowser WPF: modifica delle proprietà di dialogo di stampa di IE di programmazione

Nella finestra che contiene WebBrowser c'è il pulsante per la stampa con gestore:

mshtml.IHTMLDocument2 doc = WBrowser.Document as mshtml.IHTMLDocument2; 
doc.execCommand("Print", true, 0); 

ma in questo caso non v'è alcun background nel documento stampato. Ho cercato questo problema, ed è un problema con la proprietà nella finestra di dialogo di configurazione della pagina di Internet Explorer - Permetti la stampa di colori e immagini di sfondo.

Ho provato a cambiare questo da questo codice:

RegistryKey regKey = Registry.CurrentUser 
     .OpenSubKey("Software", true) 
     .OpenSubKey("Microsoft", true) 
     .OpenSubKey("Internet Explorer", true) 
     .OpenSubKey("PageSetup", true); 

var defaultValue = regKey.GetValue("Print_Background"); 
regKey.SetValue("Print_Background", "yes"); 

ma questo è il codice cattivo. Non voglio cambiare i valori di registro per un semplice parametro bool.

Quindi, la mia domanda è: come posso cambiare questo parametro di programmazione tramite code-behind senza modifiche registro?

Grazie!

risposta

5

L'unico modo per modificare le impostazioni di stampa senza modificare il registro è tramite Print Templates e sembra che nessuno li abbia effettivamente utilizzati dal controllo del browser Web .NET.

Tuttavia, this answer ha risorse supplementari per quanto riguarda i modelli di stampa e il loro utilizzo da C++/win32.

Se siete aperti a utilizzando ActiveX per la stampa della pagina, è possibile utilizzare il SHDocVw.WebBrowser che poi consente di accedere alla possibilità di specificare il modello di stampa, come indicato nella this answer

1

Non si può fare questo senza la modifica del Registro.