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

本文介绍网页局部打印的方法,包括利用style隐藏不需打印的内容、HTML字符截取指定打印区域及使用WebBrowser和ScriptX.cab控件实现打印等功能。

1. window.print(); 打印 <input class="NOPRINT" type="button" onclick="window.print()" value="print"> 即可实现打印 如果要实现页面的局部打印,有两种办法 1).利用style,不需要打印的地方都加上 NoPrint Style <mce:style media=print><!-- .Noprint{display:none;} .PageNext{page-break-after: always;} --></mce:style><style media=print mce_bogus="1"> .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;" mce_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弹出控制--%> <mce:script language="Javascript"><!-- function preview1() { var bln; var bln=confirm("需要打印签核流程吗?") if (bln==true) { SignTR.className=''; } else { SignTR.className='NOPRINT'; } window.print(); } // --></mce: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--> <mce: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 //如果不加此行,没有打印的部分在页面上会隐藏掉 } // --></mce:script> 如果动态控制打印,可以在JS里面用对话框控制eprnstr 值是<!--endprint--> 或<!--endSign--> 2.利用WebBrowser 打印 <mce:style media=print><!-- .Noprint{display:none;} .PageNext{page-break-after: always;} --></mce:style><style media=print mce_bogus="1">.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="/" mce_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('<mce:style media="print"><!-- @media print { .noprint{display:none} } --></mce:style><style media="print" mce_bogus="1">@media print { .noprint{display:none} } </style>'); /////////////////////////////////~~控制打印时不显示按钮的样式,在页面不需要打印的地方只需要引用该样式即可 document.write('<div id=NoPrinter name=NoPrinter align=right style="visibility:visible" mce_style="visibility:visible" class="noprint"><br>'); document.write('<input type=button class=button value=关闭 name="bFQ" id="bFQ" onclick=/"javascript/:window.close()/">'); document.write('<input type="button" value="打印设置" onclick=/"factory.printing.PageSetup()/">'); document.write('<input type="button" value="打印预览" onclick=/"factory.printing.Preview()/">'); document.write('<input type=button name=button3 value="打印" onclick="Printers()"></div>'); 在使用打印功能时,只要把文件2个文件包含在页面中放置打印按钮的地方即可,代码如下: <mce:script src="../inc/print/Printer.js" mce_src="inc/print/Printer.js"></mce:script> <mce:script src="../inc/print/Printers.js" mce_src="inc/print/Printers.js"></mce:script> 4.把页面的内容设计成RDLC报表打印出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值