代码之家  ›  专栏  ›  技术社区  ›  pistacchio

C#如何将呈现的HTML页面发送到打印机

  •  1
  • pistacchio  · 技术社区  · 14 年前

    从C#中的CLI应用程序(或库)中,我可以向打印机发送一些内容,选择它等(使用 PrintDocument PrinterSettings .

    如何向打印机发送呈现的HTML页?比如在内存中实例化IE并使用它来呈现/打印页面?这不需要打开实际的浏览器窗口(例如,从命令行执行所有操作)。

    这就是我目前所知道的:

        using mshtml;
    
        string sWebPage = System.IO.File.ReadAllText(@"C:\Users\me\Desktop\h.html");
        object[] oPageText = { sWebPage };
        HTMLDocumentClass myDoc = new HTMLDocumentClass();
        IHTMLDocument2 oMyDoc = (IHTMLDocument2)myDoc;
        oMyDoc.write(oPageText);
        //oMyDoc.execCommand("print", false, 0); <- does not wok
    

    谢谢

    3 回复  |  直到 14 年前
        1
  •  1
  •   Rawling isekaijin    14 年前

    有一个 WebBrowser 控件,它看起来允许您加载和呈现某些HTML,并且确实有打印方法,但它是一个窗体控件,因此在非窗体项目中使用可能很困难。

        2
  •  1
  •   weismat    14 年前

    您可以通过COM使用Internet Explorer并将浏览器的可见性设置为false。
    如果您需要一个实际的代码示例,请告诉我。

    using SHDocVw;
            InternetExplorer ie = new InternetExplorer();            
            ie.Visible = false;
            ie.Navigate("http://xxx");
            Thread.Sleep(1000);
            while (ie.Busy)
            {
                Thread.Sleep(1000);
            }
    

    ,,, ...

        3
  •  -1
  •   Julius A    14 年前

    使用 Javascript , window.print() 将HTML页发送到打印机。退房 W3Schools reference