【问题标题】:C# How to send a rendered HTML page to the printerC# 如何将呈现的 HTML 页面发送到打印机
【发布时间】:2010-06-29 13:58:44
【问题描述】:

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

如何将呈现的 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

谢谢

【问题讨论】:

  • 有点不清楚你到底在问什么 - 你是想从网络应用打印网页,还是从非网络应用渲染和打印一些 HTML?
  • 加载一个 html 字符串并将其格式化为内存中的正确 html。从那里将呈现的页面发送到选择的打印机。

标签: c# html printing


【解决方案1】:

有一个WebBrowser 控件,看起来可以让您加载和呈现一些 HTML,并且确实有一个 Print 方法,但它是一个表单控件,因此在非 Forms 项目中可能很难使用。

【讨论】:

    【解决方案2】:

    您可以通过 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】:

      使用Javascriptwindow.print() 会将 HTML 页面发送到打印机。查看W3Schools reference

      【讨论】:

      • 如果为假,则会打开打印选择页面。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 2010-11-07
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多