【问题标题】:How to print background image and styles in WebBrowser control如何在 WebBrowser 控件中打印背景图像和样式
【发布时间】:2020-03-16 11:24:33
【问题描述】:

我想通过我的web browser control 打印背景图像:

body {
    background-image: url("image url");
}

为此,我正在生成 html 内容,最后尝试使用以下方法打印文档:

 webBrowserTest.Print();

虽然背景图像在浏览器的运行时显示,但在打印时它不会打印。如何在打印过程中保留背景图像?

【问题讨论】:

    标签: c# html .net winforms webbrowser-control


    【解决方案1】:

    页面设置对话框中有一个打印背景颜色和图像设置,该设置在 Web 浏览器控件和 Internet Explorer 之间共享。

    Microsoft Internet Explorer 的页面设置设置存储在以下注册表项中:

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\PageSetup
    

    打印背景颜色和图像值存储在Print_Background 键中,可以是yesno。您可以使用代码更改设置,但请记住,这些值是系统范围的设置,将影响当前用户的 WebBrowser 控件和 Internet Explorer 的所有实例:

    using (var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
        @"Software\Microsoft\Internet Explorer\PageSetup", true))
    {
        key.SetValue("Print_Background", "yes", Microsoft.Win32.RegistryValueKind.String);
    }
    

    这是我使用的测试 html:

    <html>
      <head>
        <style>
         body { background-image: url("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"); } 
        </style>
      </head>
      <body>
      </body>
    </html>
    

    【讨论】:

    • 非常感谢,但它没有用,因为我进行了静默打印,您帮助我在没有对话框的情况下静默打印 HTML stackoverflow.com/a/57233157/418343,请您帮我保留背景图片基于这些情况。
    • 没问题,第一个选项(设置注册表项)应该可以工作。您只需要确保设置正确即可。
    • 我需要以编程方式完成,所以我将您的代码块复制并粘贴到我的PageSetup 方法中,但它不起作用,我编辑了我的问题,请您看一下跨度>
    • 我将重置您对问题所做的编辑,因为它使答案变得毫无意义。我会看看你的问题的编辑历史中仍然可以访问的代码。
    • 你找到问题了吗
    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2010-10-10
    • 2012-06-29
    • 2011-02-23
    • 2011-08-29
    • 2010-10-20
    相关资源
    最近更新 更多