Asp.net 打印 页面 局部页面 动态控制

1. window.print(); 打印

< input  class ="NOPRINT"  type ="button"  onclick ="window.print()"  value ="print" >

即可实现打印

如果要实现页面的局部打印,有两种办法

   1).利用style,不需要打印的地方都加上 NoPrint Style

     < style  media =print >
    .Noprint
{ display : none ; }
    .PageNext
{ page-break-after :  always ; }
    
</ style >

  
< asp:Panel  ID ="Panel1"  Width =98%   runat ="server"  CssClass  ="NOPRINT" >
       ..
   
</ asp:Panel >    
    
< table  border ="0"  cellpadding ="0"  cellspacing ="0"   id ="TABLE1"    >
        
< tr  class ="NOPRINT" > .    </ tr >
    
</ table >

如果实现动态打印,可以用弹出对话框或radioButton来控制需要动态打印地方的 Class

< TABLE  Width ="98%"  align ="center"  cellspacing ="0"  border ="1"  style ="border-collapse:collapse;" >
      
< tr >   </ tr >
      
< tr >   </ tr >
      
< tr  id ="SignTR" >    <!-- 动态打印部分 -->  
        
< td   nowrap style ="width: 10%"  colspan ="2" >
        
</ td >
        
< td  width ="90%"  nowrap  >                
        
</ td >
      
</ tr >
</ TABLE >
< asp:Panel  ID ="Panel2"  runat =server  CssClass  ="NOPRINT" >
是否要将签核过程打印在页面后
  
< input  type ="radio"  value ="1"  name ="s1"    onclick ="SignTR.className=''" > 是   
  
< input  type ="radio"  value ="0"  name ="s2"    onclick ="SignTR.className='NOPRINT'" > 否   
   
< input  class ="NOPRINT"  type ="button"  onclick ="window.print()"  value ="打 印" >  
</ asp:Panel >
 
<% -- 或者利用Javascript弹出控制 -- %>
< script  language ="Javascript" >  
function  preview1() 
{    
var  bln;
     
var  bln = confirm( " 需要打印签核流程吗? " )
     
if  (bln == true )
       { SignTR.className
= '' ;
       }
     
else      
       { SignTR.className
= ' NOPRINT ' ;
       }     
     window.print(); 

</ script >
< input  type ="button"  ID ="printU"  runat =server   name ="printU"  value ="打印"  onclick ="preview1()"  Class ="button" >  

   2).利用利用HTML的字符截取

<!-- startprint -->  
< TABLE  Width ="98%"  cellspacing ="0"  border ="1"   >
  
< tr ></ tr >
                
<!-- endSign -->  
  
< tr ></ tr >
</ TABLE >
<!-- endprint -->  
< script  language ="Javascript" >  
function  preview() 

     
var  prnhtml = null ;
     bdhtml
= window.document.body.innerHTML; 
     sprnstr
= " <!--startprint--> " ; // 开始标识   
     eprnstr = " <!--endprint--> " ; // 结束标识
     prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17 ); 
     prnhtml
= prnhtml.substring( 0 ,prnhtml.indexOf(eprnstr));  // 截取标识之间部分打印
     FGFG = window.document.body.innerHTML
     window.document.body.innerHTML
= prnhtml; 
     window.print(); 
     window.document.body.innerHTML
= FGFG  // 如果不加此行,没有打印的部分在页面上会隐藏掉
}
</ script >  

如果动态控制打印,可以在JS里面用对话框控制eprnstr  值是<!--endprint--> 或<!--endSign-->

2.利用WebBrowser 打印 

< style  media =print >
.Noprint
{ display : none ; }
.PageNext
{ page-break-after :  always ; }
</ style >   <% --  同样要设置Noprint style  -- %>
  
< OBJECT   id =WebBrowser   classid =CLSID:8856F961-340A-11D0-A96B-00C04FD705A2   height =0   width =0  >
  
</ OBJECT >
< input  type =button  value =打印      onclick ="document.all.WebBrowser.ExecWB(6,1)"  class ="NOPRINT" >
< input  type =button  value =直接打印  onclick ="document.all.WebBrowser.ExecWB(6,6)"  class ="NOPRINT" >
< input  type =button  value =页面设置  onclick ="document.all.WebBrowser.ExecWB(8,1)"  class ="NOPRINT" >
< input  type =button  value =打印预览  onclick ="document.all.WebBrowser.ExecWB(7,1)"  class ="NOPRINT" >

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

其中最后一项WebBrowser.ExecWB(45,1)可以有效解决IE7下,使用WebBrowser.ExecWB(7,1)执行打印预览后返回到原窗口时,window.close()方法失效的问题

3.用ScriptX.cab 控件打印

打印的必须文件有2个:   配置文件:setting.js   显示文件:print.js   
  setting.js   如下:   
  document.write("<object   id=\"factory\"   style=\"display:none\"   viewastext   classid=\"clsid:1663ed61-23eb-11d2-b92f-008048fdd814\"   codebase=\"images/events/ScriptX.cab#Version=5,60,0,360\"></object>");  
  function   Printers()   {  
  agree   =   confirm('确定打印吗?');  
  if   (agree)   {  
  if   (agree)  
  {  
  NoPrinter.style.visibility='hidden';  
  factory.printing.Print();}  
  else   NoPrinter.style.visibility='visible';  
        }  
  }   
      factory.printing.header   =   ""  
      factory.printing.footer   =   ""  
      factory.printing.leftMargin   =   0.75  
      factory.printing.topMargin   =   0.75  
      factory.printing.rightMargin   =   0.75  
      factory.printing.bottomMargin   =   0.75   
  显示文件print.js   如下:       
  document.write('<style   media="print">@media   print   {   .noprint{display:none}   }   </style>');  
  /~~控制打印时不显示按钮的样式,在页面不需要打印的地方只需要引用该样式即可  
  document.write('<div   id=NoPrinter   name=NoPrinter   align=right   style="visibility:visible"   class="noprint"><br>&nbsp;');  
  document.write('<input   type=button   class=button   value=关闭   name="bFQ"   id="bFQ"   οnclick=\"javascript\:window.close()\">');  
  document.write('<input     type="button"   value="打印设置"   οnclick=\"factory.printing.PageSetup()\">');   

  document.write('<input   type="button"   value="打印预览"   οnclick=\"factory.printing.Preview()\">');  
  document.write('<input   type=button   name=button3   value="打印"   οnclick="Printers()">&nbsp;&nbsp;&nbsp;&nbsp;</div>');   
      
  在使用打印功能时,只要把文件2个文件包含在页面中放置打印按钮的地方即可,代码如下:   
      <script   src="../inc/print/Printer.js"></script>  
      <script   src="../inc/print/Printers.js"></script>  
4.把页面的内容设计成RDLC报表打印出来

转载于:https://www.cnblogs.com/lwl0606/archive/2008/10/07/1305623.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值