利用CSS样式打印

11.4  利用CSS样式打印
利用CSS样式打印是经常使用的一种打印方法,利用它可以非常方便的实现打印页面中的指定内容和分页打印,下面将通过具体实例介绍如何利用CSS样式打印。
实例302   利用CSS样式打印页面中的指定内容
实例说明
普通的Web打印,将会打印页面中的全部内容,但在开发实际网站时,通常只需要打印页面中指定的内容,为了解决该问题,可以应用CSS样式对打印内容进行控制。运行本实例,单击“打印”超级链接即可按用户的设置进行打印。实例运行结果如图11.14、图11.15所示。
图11.14  利用CSS样式打印页面中的指定内容
图11.15  打印预览效果
* 技巧:在进行Web打印时,可以通过以下操作控制是否打印背景颜色和图像。在IE窗口中,选择“工具”→“Internet选项”选项,在弹出的“Internet选项”对话框中,选择“高级”选项卡,在“设置”列表中设置“打印背景颜色和图像”前面的复选框是否选中,如果选中,代表打印背景颜色和图像,否则不打印背景颜色和图像。
技术要点
本实例主要应用了CSS样式的media类型。下面进行详细介绍。
media类型是CSS属性媒体类型,用于直接引入媒体的属性。其语法格式如下:
@media screen | print | projection | braille | aural | tv | handheld | all
参数说明
l     screen:指计算机屏幕。
l     print:指用于打印机的不透明介质。
l     projection:指用于显示的项目。
l     braille:盲文系统,指有触觉效果的印刷品。
l     aural:指语音电子合成器。
l     tv:电视类型的媒体。
l     handheld:指手持式显示设备。
l     all:用于所有媒体。
实现过程
(1)编写用于控制指定内容不打印的CSS样式,代码如下:
<style>
@media print{
div{display:none}
.bgnoprint{
   background:display:none;
}
.noprint{
   display:none
}
}
</style>
(2)为不需要打印的元素设置CSS样式,关键代码如下:
<table width="757" height="174" border="0" align="center"cellpadding="0"
cellspacing="0">
 <tr class="noprint">
  <td height="133" align="center" valign="top">
   <img src="Images/top.jpg" width="757" height="133"></td>
 </tr>
……  //此处省略了其他HTML代码,具体代码请参见光盘
举一反三
根据本实例,读者可以:
  实现打印库存明细;
  实现打印库存数量达到预警线的库存商品信息。
实例303   利用CSS样式分页打印
实例说明
在制作数据打印程序时,对于多页数据(指的是一页纸不能全部打印完毕的数据)通常采用分页打印。这里的分页打印是指在每一页数据的顶端都打印表头信息。下面将通过具体实例介绍如何利用CSS样式实现分页打印。运行本实例,如图11.16所示,单击“打印预览”超级链接,可以查看打印效果,如图11.17所示,单击“打印”超级链接即可进行分页打印。
图11.16  利用CSS样式分页打印
图11.17  打印预览效果
技术要点
本实例主要应用了thead标记、tfoot标记和page-break-after属性。下面进行详细介绍。
(1)thead标记
thead用于设置表格的表头。
(2)tfoot标记
tfoot用于设置表格的表尾。
(3)page-break-after属性
page-break-after属性在打印文档时发生作用,用于进行分页打印。但是对于<br>和<hr>对象不起作用。
语法:
page-break-after:auto | always | avoid | left | right | null
参数说明
l     page-break:打印时在样式控制的对象前后换页。
l     after:设置对象后出现页分割符。设置为always时,始终在对象之后插入页分割符。
l     auto:在对象之后自动插入页分割符。
l     always:始终在对象之后插入页分割符。
l     avoid:未支持。避免在对象后面插入分割符。
l     left:未支持。在对象后面插入页分割符,直到它到达一个空白的左页边。
l     right:未支持。在对象后面插入页分割符,直到它到达一个空白的右页边。
l     null:空白字符串。取消了分割符设置。
实现过程
(1)在要打印的页面中添加用于显示客户信息的表格,并设置好表头、表尾及打印分页,关键代码如下:
<table width="650" border="1" cellpadding="0" align="center" cellspacing="0"
bgcolor="#FE7529" id="pay" bordercolor="#FE7529" bordercolordark="#FE7529"
bordercolorlight="#FFFFFF" style="border-bottom-style:none;">
<!--设置表头-->
   <thead style="display:table-header-group;font-weight:bold">
  <tr align="center" bgcolor="#FE7529">      
   <td width="155" height="30">客户名称</td>
   <td width="99">电话</td>
   <td width="59" >联系人</td>
   <td width="84">联系人电话</td>
   <td width="175">E-mail</td>
   <td width="64">所在地区</td>
  </tr>
  </thead>
  <tr>
   <td height="30" bgcolor="#FFFFFF">采虹**集团</td>
   <td width="99">电话</td>
   <td width="59" >联系人</td>
   <td width="84">联系人电话</td>
   <td width="175">E-mail</td>
   <td width="64">所在地区</td>
  </tr>
  <tr>
   <td height="30" bgcolor="#FFFFFF">吉林省明日科技有限公司</td>
    ……         //此处省略了显示客户其他信息的HTML代码
  </tr>
  <tr>
<!--控制分页-->
  <td height="30" bgcolor="#FFFFFF" style="page-break-after:always">鑫***有限公司</td>
     ……      //此处省略了显示客户其他信息的HTML代码
  </tr>
  <tr>
   <td height="30" bgcolor="#FFFFFF">东西南北***通讯公司</td>
    ……        //此处省略了显示客户其他信息的HTML代码
  </tr>
  <tr>
   <td height="30" bgcolor="#FFFFFF">明*有限责任公司</td>
   ……          //此处省略了显示客户其他信息的HTML代码
  </tr> 
<!--设置表尾-->
<tfoot style="display:table-footer-group; border:none;"><tr><td></td></tr></tfoot>
</table>
(2)控制“打印”和“打印预览”超级链接在打印时不显示。关键代码如下:
<style>
@media print{
.noprint{display:none}
}
</style>
  <table width="647" align="center" class="noprint">
     <tr align="center" bgcolor="#FFFFFF">
    <td height="27" colspan="3" align="right">
    <a href="#" onClick="document.all.WebBrowser.Execwb(7,1)">打印预览</a>
    <a href="#" onClick="document.all.WebBrowser.Execwb(6,1)">打印</a>
    <a href="#" onClick="document.all.WebBrowser.Execwb(8,1)"></a> </td>
  </tr>
</table>
举一反三
根据本实例,读者可以:
  实现打印库存明细;
  实现打印库存数量达到预警线的库存商品信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值