【问题标题】:How to print from aspx page without opening print dialog box如何在不打开打印对话框的情况下从 aspx 页面打印
【发布时间】:2012-01-18 11:44:03
【问题描述】:

我想从 aspx 页面(正文部分 {})打印。但我不想打开打印对话框。我已经安装了超过一台打印机在我的电脑。但是当我点击打印按钮时,它会直接在我的默认打印机中打印。我该怎么做,或者是否可以在 Web 应用程序中做到这一点?

【问题讨论】:

  • 现在从哪里打印?不是从您的 .aspx 页面打印?
  • 是的,现在我从 aspx 页面执行此操作....但是当我单击打印按钮时显示对话框。我不想要......

标签: c# asp.net printing


【解决方案1】:

打印由浏览器处理,而不是您的 ASPX 页面。所以你不能这样做。

【讨论】:

    【解决方案2】:

    您不能对所有浏览器都这样做。打印是客户端,您无法通过打印对话框。

    有一个old script,但它在 IE 和 Netscape 之外的任何地方都不起作用。而且很老了:

    function printit() {
      if ((navigator.appName == "Netscape")) { 
        window.print() ; 
      } else { 
        var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
        document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 
        WebBrowser1.ExecWB(6, -1); WebBrowser1.outerHTML = ""; 
      }
    }
    

    【讨论】:

      【解决方案3】:

      是的,你可以,但你需要使用第三方类\程序集,就像这样做

      pdf.sharp

      或者自己写一个……

      【讨论】:

      • 非常感谢.....你有任何链接或示例代码可以帮助我做到这一点......
      • 你可以分享任何链接以获取详细信息...?
      【解决方案4】:

      添加 iframe

       <iframe id="ifmcontentstoprint" style="height: 0px; width: 0px; position: absolute"></iframe>
      

      并使用以下 javascript 函数

       function printform() {
              var content = document.getElementById('<%= PrintDivID.ClientID %>').innerHTML;
      
              var pri = document.getElementById("ifmcontentstoprint").contentWindow;
              pri.document.open();
              pri.document.write(content);
              pri.document.close();
              pri.focus();
              pri.print();
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-05
        • 1970-01-01
        • 1970-01-01
        • 2018-03-03
        • 2012-04-25
        • 1970-01-01
        • 2011-05-03
        • 1970-01-01
        相关资源
        最近更新 更多