将webbrowser内容打印为横向

时间:2015-09-08 07:01:49

标签: c# winforms internet-explorer printing webbrowser-control

我需要将WebBrowser控件中的文档打印为横向(不显示PrintPreview并更改默认的打印机页面方向)。

我试过了:

  1. TemplatePrinter 这是我的模板template.html:

    <HTML XMLNS:IE>
    <HEAD>
    <?IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">
    <TITLE>Landscape</TITLE>
    </HEAD>
    <BODY>
    <IE:TEMPLATEPRINTER id="Printer"/>
    <SCRIPT Language="JavaScript">
    Printer.orientation="landscape";
    </SCRIPT>
    </BODY>
    </HTML>
    

    我尝试使用它:

    mshtml.IHTMLDocument2 doc = wbReport.Document.DomDocument as mshtml.IHTMLDocument2;
    doc.execCommand("print", false, "template.tpl");
    
  2. 创建注册码&#34;方向&#34;有价值&#34; 2&#34;在HKCU \ Software \ Microsoft \ Internet Explorer \ PageSetup

  3. 添加样式:

    <style type="text/css" media="print">
    @page
    {
     size: landscape;
     margin: 2cm;
    }
    </style>
    
  4. 但我仍然将我的HTML打印为肖像。 也许有更好的解决方案将html打印为横向,或者在使用TemplatePrinter时出现错误?

1 个答案:

答案 0 :(得分:1)

在搞乱注册表之后,尝试在IE中使用打印模板以及其他各种方法(没有一种方法可行)我已经制作了一些有点麻烦的解决方法。

我扩展了WebBrowser控件并创建了一个新的打印预览方法,在其中我有方法来传递ALT + L组合以启用横向视图:

Name

您需要做的只是实例化对象,像标准WebBrowser一样加载文档并调用_ShowPrintPreviewDialog。

请注意,您可能希望在设置横向视图后停止计时器。

HTH有同样问题的人。