2014-11-16 6 views
7

मैं WPF WebBrowser नियंत्रण के साथ एप्लिकेशन लिख रहा हूं। यह स्रोत डेटाबेस से xml/xslt sourse का परिणाम है।WPF WebBrowser: IE प्रिंट संवाद गुणों को प्रोग्रामेटिक रूप से बदलना

विंडो WebBrowser शामिल वहाँ हैंडलर के साथ मुद्रण के लिए बटन है में:

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

लेकिन इस मामले में मुद्रित दस्तावेज़ में कोई पृष्ठभूमि नहीं है। मैंने इस मुद्दे पर शोध किया है, और यह इंटरनेट एक्सप्लोरर पेज सेटअप संवाद में संपत्ति के साथ परेशानी है - पृष्ठभूमि रंगों और छवियों के मुद्रण की अनुमति दें।

मैं इस कोड से इसे बदलने की कोशिश की है:

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 वेब ब्राउज़र नियंत्रण से उपयोग नहीं किया है।

हालांकि, this answer में प्रिंट टेम्पलेट्स और सी ++/win32 से उनके उपयोग के संबंध में अतिरिक्त संसाधन हैं।

आप पृष्ठ को प्रिंट करने के लिए ActiveX का उपयोग कर के लिए खुला हो, तो आप SHDocVw.WebBrowser जो तब आप प्रिंट टेम्पलेट निर्दिष्ट करने की क्षमता का उपयोग करने, के रूप में this answer

में नोट देता है इस्तेमाल कर सकते हैं
1

आप रजिस्ट्री संशोधन के बिना ऐसा नहीं कर सकते हैं।

संबंधित मुद्दे