如何从aspx页面打印而不打开打印对话框

时间:2012-01-18 11:44:03

标签: c# asp.net printing

我想从aspx页面(正文部分{})打印。但我不想打开打印对话框。我已经在我的计算机上安装了多台打印机。但是,当我点击打印按钮时,它会直接在我的默认打印机中打印。我该怎么做或是否可以在Web应用程序中执行此操作?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您无法为所有浏览器执行此操作。打印是客户端,您无法通过打印对话框。

有一个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 = ""; 
  }
}

答案 2 :(得分:0)

是的,你可以,但你需要使用像

那样的第三方类\ assembly

pdf.sharp

或者自己写一个......

答案 3 :(得分:0)

添加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();
    }