• 利用CSS样式打印


    11.4 利用CSS样式打印
    主要的手段是,利用css引用中的media属性,应用特殊的样式。

    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>

    举一反三

    根据本实例,读者可以:

    实现打印库存明细;

    实现打印库存数量达到预警线的库存商品信息。

  • 相关阅读:
    Java第二十五天,多线程之等待唤醒机制
    Java第二十四天,线程安全
    多线程第二十三天,多线程
    Java第二十二天,异常
    数据结构之广义表
    MS Office使用技巧
    标准C++中的String类的使用
    SQL中创建外键约束
    关系数据标准语言SQL之数据查询
    Windows命令
  • 原文地址:https://www.cnblogs.com/luluping/p/1972291.html
Copyright © 2020-2023  润新知