web列印
来源:互联网 发布:mousewheel.js下载 编辑:程序博客网 时间:2024/06/06 19:08
web列印是困扰很多web开发人员的问题。有很多人提出了不同的web打印解决方案,还有很多的商业报表设计器来帮我们(需要付费的,我想很多人不想花这个钱).本文不会讨论这个问题。如果大家对于web打印各种解决方案感兴趣,可以阅读修改文档,或者到互联网上搜索。这方面对文章很多。
本文将提供给大家一个在普通ie打印的情况下,如何在打印的报表中省略掉我们不希望看到的东西,保留想要看到的东西,而对于用户来说又是透明的,这样的一个解决方案。
方案如下:
首先应该养成良好的写程序的习惯,就是将各部分都分别包装起来,一般用span或者div,比如:
<html><span id="span1">……</span><span id="span2">……</span></html>
假如我们不想打印span2中的内容,在页面上添加这样一段javascript程序:
<script>//----- 下面是打印控制语句 ----------window.onbeforeprint=beforePrint;window.onafterprint=afterPrint;//打印之前隐藏不想打印出来的信息function beforePrint(){ span2.style.display='none';}//打印之后将隐藏掉的信息再显示出来function afterPrint(){ span2.style.display='';}</script>
这样,当用户打印本页的,打印的纸张上,就看不到span2中的内容。而用户根本感觉不到。
更具上面的一个小例子,我们可以有了一点入门了吧,我们只要合理的分割包装整个页面,我们就可以灵活的控制整个页面的打印输出。如果我们在页面上设计了打印按钮,只要这样写就可以了:
<a href="#" onclick="beforePrint();window.print();afterPrint();">打印</a>
另外如果我们想把查询的表格中的某列或某行省略掉可不可以呢?答案是肯定的,不过我们需要做更多的工作,假如我们要隐藏一列。例子代码如下:
<table cellspacing="0" border="1" bordercolor="#000000" class="tableBorder2" cellpadding=0 width="100%"> <tr height="25"> <td valign="center" align="left" name="op_TD" width="18%" class="noticetitle" background="../../images/topbg.gif"> 操作</td> <td valign="center" align="left" width="12%" class="noticetitle" background="../../images/topbg.gif"> 车型</td> </tr> <tr> <td height="23" align="left" class="inputstyle" name="op_TD" > <a href="cj_forward_mx.asp?cx=CCK231&cj_code=E900&cj=锻工车间&next_gx=锻" target="_blank">明细</a> <a href="cj_forward_card.asp?cx=CCK231&to_cj_code=E900&to_cj=锻工车间&t_money=840&next_gx=锻" target="_blank">单据</a> </td> <td height="23" align="left" class="inputstyle"> CCK231</td> </tr> <tr> <td height="23" align="left" class="inputstyle" name="op_TD" > <a href="cj_forward_mx.asp?cx=CCK231&cj_code=C430-2&cj=明安公司&next_gx=工" target="_blank">明细</a> <a href="cj_forward_card.asp?cx=CCK231&to_cj_code=C430-2&to_cj=明安公司&t_money=630&next_gx=工" target="_blank">单据</a> </td> <td height="23" align="left" class="inputstyle"> CCK231</td> </tr> <tr height="23"> <td colspan="2" align="right">合计:907,620.00</td> </tr> <tr height="30"><td align=right id="aPrint"> <a href="#" onclick="beforePrint();window.print();afterPrint();">打印</a> </td></tr></table>
这段代码中,我们在想要隐藏的那个列的td中都添加了 name="op_TD" ,把下面的javascript代码加入到本页面内,就可以控制name为 op_TD 的所有td在打印时都隐藏起来。代码如下:
<script> //----- 下面是打印控制语句 ----------window.onbeforeprint=beforePrint;window.onafterprint=afterPrint;//打印之前隐藏不想打印出来的信息function beforePrint(){ var opTDS=document.getElementsByTagName('TD'); for(var i=0;i<opTDS.length;i++) { if(opTDS[i].name=='op_TD')opTDS[i].style.display='none'; } aPrint.style.display='none'; //隐藏打印按钮}//打印之后将隐藏掉的信息再显示出来function afterPrint(){ var opTDS=document.getElementsByTagName('TD'); for(var i=0;i<opTDS.length;i++) { if(opTDS[i].name=='op_TD')opTDS[i].style.display=''; } aPrint.style.display=''; //显示打印按钮}</script>
看了我上面的讲解,我相信大家会有自己的心得了吧,还等什么?自己动手做做吧! 有什么新的想法或疑问,欢迎通过评论。
另外有些童鞋提出在列印的时候会出现url地址,页数,日期。这个也是可以隐藏的。这个就需要设置User的Client了。IE---->文件--->设定列印格式。
- web列印
- web 打印 Excel列印方式
- web列印的js簡單寫法10/26
- web上水晶報表9的列印10/28
- web上水晶報表9的列印(3)12/24
- 列印版面設定
- 從瀏覽器列印報表
- 付款凭证列印
- ZVT003出闸纸列印
- PHP列印条码
- js 网页列印
- CMYK列印颜色
- 自定义纸张列印
- 頁面列印
- 以Mime方式列印Excel
- [asp.net]頁面列印9/20
- ASP.NET使用OWC組件繪圖、列印
- 網頁列印的分頁方法。
- js笔记一
- Android生命周期
- 浅谈WebKit之JavaScriptCore/V8篇
- WebKit内核源代码分析(二)
- ORACLE触发器和new、old特殊变量
- web列印
- android 开发笔记
- C++多媒体处理类库 JUCE 1.53 发布
- 指针使用前初始化
- Using an NSAnimation Object
- 企业级3G无线视频服务器
- 以太网最小帧长为什么是64字节
- 意图和意图过滤器Intents and Intent Filters
- Animating Views and Windows