【问题标题】:WPF WebBrowser: changing IE print dialog properties programmaticallyWPF WebBrowser:以编程方式更改 IE 打印对话框属性
【发布时间】:2015-01-13 15:49:52
【问题描述】:

我正在使用 WPF WebBrowser 控件编写应用程序。它的来源是数据库中 xml/xslt 源的结果。

在包含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");

但这是糟糕的代码。我不想为一个简单的 bool 参数更改注册表值。

所以,我的问题是:如何在不修改注册表的情况下通过代码隐藏以编程方式更改此参数?

谢谢!

【问题讨论】:

    标签: c# xml wpf internet-explorer printing


    【解决方案1】:

    如果不修改注册表,您将无法做到这一点。

    【讨论】:

      【解决方案2】:

      在不修改注册表的情况下修改打印设置的唯一方法是通过Print Templates,似乎没有人真正从 .NET Web 浏览器控件中使用过它们。

      但是,this answer 有关于打印模板及其在 C++/win32 中的使用的其他资源。

      如果您愿意使用 ActiveX 打印页面,您可以使用 SHDocVw.WebBrowser,然后您可以访问指定打印模板的能力,如 this answer 中所述

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 2010-10-17
        • 2019-01-31
        相关资源
        最近更新 更多