2014-11-16 22 views
7

我正在用WPF WebBrowser控件編寫應用程序。它的來源是來自數據庫的xml/xslt sourse的結果。WPF WebBrowser:以編程方式更改IE打印對話框屬性

在包含WebBrowser有按鈕用於與處理程序打印窗口:

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

但在這種情況下,有打印的文檔中沒有背景。我已經研究過這個問題,並且它在Internet Explorer頁面設置對話框中遇到問題 - 允許打印背景顏色和圖像。

我試過這段代碼可以改變:

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

但這是錯誤代碼。我不想爲一個簡單的布爾參數更改註冊表值。

所以,我的問題是:我怎樣才能通過代碼後臺編程更改此參數而無需註冊表修改?

謝謝!

回答

5

在不修改註冊表的情況下修改打印設置的唯一方法是通過Print Templates,似乎沒有人真的從.NET Web瀏覽器控件中使用它們。

但是,this answer有關於打印模板及其在C++/win32中的使用情況的其他資源。

如果你打開使用ActiveX打印的頁面,你可以使用SHDocVw.WebBrowser然後,您可以訪問指定的打印模板的能力,如在this answer

注意
1

如果沒有註冊表修改,則無法執行此操作。

相關問題