打印ASP.NET

下列前提条件:

页面需加入下面标签元素

<OBJECT   id=WebBrowser   classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2   height=0   width=0></OBJECT>

 

打印设置:

WebBrowser.ExecWB(1,1) 打开
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示

 

打印拼凑:

/// <summary>
  /// 拼出要打印的表
  /// </summary>
  /// <param name="ds">DATASET</param>
  /// <param name="dg">DATAGRID</param>
  /// <returns></returns>
  public string DGPrint(DataSet ds,DataGrid dg)
  {
   //*****************************************************************************************//

   DataTable myDataTable=new DataTable();
   myDataTable=ds.Tables[0];

   int myRow=myDataTable.Rows.Count;
   int myCol=dg.Columns.Count;

   StringBuilder sb=new StringBuilder(); 
    
 
   string colHeaders="<html><body>"+
    "<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'VIEWASTEXT></object>"
    +"<table><tr>"; 

   for(int i=0;i<myCol;i++)
   {    
    colHeaders +="<td>"+ dg.Columns[i].HeaderText.ToString()+"</td>";
   }
   colHeaders += "</tr>";

   sb.Append(colHeaders);

   for(int i=0;i<myRow;i++)
   {      
    sb.Append("<tr>");
    for(int j=0;j<myCol;j++)
    {
     sb.Append("<td>");
     sb.Append(myDataTable.Rows[i][j].ToString().Trim());
     sb.Append("</td>");
    }
    sb.Append("</tr>");  
   }

   sb.Append("</table></body></html>");
   colHeaders=sb.ToString();              

   colHeaders+="<scrip languge='javascript'>WebBrowser.ExecWB(7,1); window.opener=null;window.close();</script>" ;

   return(colHeaders);

   //*****************************************************************************************//
  
  }


  /// <summary>
  ///  拼出要打印的表
  /// </summary>
  /// <param name="dg">datagrid</param>
  /// <returns></returns>
  public string DGPrint(DataGrid dg)
  {
   int myRow=dg.Items.Count;  
   int myCol=dg.Columns.Count;

   StringBuilder sb=new StringBuilder();          
 
   string colHeaders="<html> body>"+
    "<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'VIEWASTEXT></object>"
    +"<table><tr>"; 

   for(int i=0;i<myCol;i++)
   {
    colHeaders +="<td>"+ dg.Columns[i].HeaderText.ToString()+"</td>";
   }
   colHeaders += "</tr>";

   sb.Append(colHeaders);

   for(int i=0;i<myRow;i++)
   {      
    sb.Append("<tr>");
    for(int j=0;j<myCol;j++)
    {
     sb.Append("<td>");
     sb.Append(dg.Items[i].Cells[j].Text.Trim());
     sb.Append("</td>");
    }
    sb.Append("</tr>");  
   }

   sb.Append("</table></body></html>");
   colHeaders=sb.ToString();              

   colHeaders+="<script languge='javascript'>WebBrowser.ExecWB(7,1); window.opener=null;window.close();</script>" ;

   return(colHeaders);
  }

 }
}
--------------------------------------------------------------------------
case 1://打印  
 
                sb.Append("<script languge='javascript'>WebBrowser.ExecWB(6,1); window.opener=null;</script>"); break;  
 
            case 2://直接打印  
 
                sb.Append("<script languge='javascript'>WebBrowser.ExecWB(6,6); window.opener=null;</script>"); break;  
 
            case 3://打印预览  
 
                sb.Append("<script languge='javascript'>WebBrowser.ExecWB(7,1); window.opener=null;</script>"); break;  
 
            case 4://打印设置  
 
                sb.Append("<script languge='javascript'>WebBrowser.ExecWB(8,1); window.opener=null;</script>"); break;  
 
            default: //打印  
 
                sb.Append("<script languge='javascript'>WebBrowser.ExecWB(6,1); window.opener=null;</script>"); break;  

页眉页脚设置:

<script language="JavaScript" type="text/javascript">  
var HKEY_Root,HKEY_Path,HKEY_Key;
HKEY_Root="HKEY_CURRENT_USER";
HKEY_Path="//Software//Microsoft//Internet Explorer//PageSetup//";
//设置网页打印的页眉页脚为空
function PageSetup_Null()
{
 try
 {
  var Wsh=new ActiveXObject("WScript.Shell");
  HKEY_Key="header";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
  HKEY_Key="footer";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
  HKEY_Key="margin_bottom";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
  HKEY_Key="margin_left";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
  HKEY_Key="margin_right";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
  HKEY_Key="margin_top";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
 }
 catch(e){
    //alert(e);
 }
}
//设置网页打印的页眉页脚为默认值
function  PageSetup_Default()
{  
 try
 {
  var Wsh=new ActiveXObject("WScript.Shell");
  HKEY_Key="header";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P");
  HKEY_Key="footer";
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
 }
 catch(e){}
}
    </script>

第二种方法:直接在.cs文件中写方法。
    protected void Page_Load(object sender, EventArgs e)
    {
        //PageSetup("", "");
    }

    private void PageSetup(string header, string footer)
    {
        Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software//Microsoft//Internet Explorer//PageSetup//", true);
        rk.SetValue("header", header);
        rk.SetValue("footer", footer);
        rk.SetValue("margin_bottom", 0);
        rk.SetValue("margin_left", 0);
        rk.SetValue("margin_right", 0);
        rk.SetValue("margin_top", 0);

    }


-------------------------------------------------------------------------------------------
WEB页面完美打印(去掉了页眉页脚)可打印预览
<html>
<head><title>打印</title></head>
<script>
function fn01()
{
 try
 {
 var Wsh=new ActiveXObject("WScript.Shell");
 HKEY_Key="header";
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
 HKEY_Key="footer";
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
 }
 catch(e){}
 document.getElementById("div1").style.display="none";
 document.all.WebBrowser.ExecWB(7,1);
 document.getElementById("div1").style.display="block";
}
function fn02()
{
 try
 {
 var Wsh=new ActiveXObject("WScript.Shell");
 HKEY_Key="header";
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
 HKEY_Key="footer";
 Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
 }
 catch(e){}
 document.getElementById("div1").style.display="none";
 document.all.WebBrowser.ExecWB(6,1);
 document.getElementById("div1").style.display="block";
}
</script>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

letisgoto

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值