网页打印之分页打印、隐藏网页元素

来源:互联网 发布:windows 7恢复出厂设置 编辑:程序博客网 时间:2024/06/12 19:45

本文研究三个问题

打印内容分页 
打印时,隐藏不需要的页面元素 
测试打印时,如何模拟打印,不浪费纸张,
  如果需要将一个页面向分成多页打印,就要用到CSS样式表元素page-break-after。该元素功能与Word中的分页符类似,是用于网页的分页符。不过在Word中,分页符可以很明显的分隔两页面。如果在网页中使用page-break-after元素,只有在打印预览时,才能看到分隔效果。

  先看一段代码,打开测试页面(print.htm),点击IE的文件-->打印预览,看看预览页面与实际页面,有没有什么区别。然后,我在下文小做解释。

以下是引用片段:
<html>

<head>
<title>printer</title>

<meta content="text/html;charset=gb2312" http-equiv="content-type"></meta>

<!--用本样式在打印时隐藏非打印项目-->
<style media=print>  
    .Noprint{display:none;}  
</style>

<!-- 两个样式表定义块必须分开,因为style标签的属性不同 -->
<style>
    .PageNext{page-break-after: always;}<!--控制分页-->
    .style8 {font-size: medium; color: #000066; }
</style>

</head>

<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0">
    <TABLE width="100%" height="100" border="1" bordercolor="#000066">
        <Tr>
            <TD align="center" bgcolor="#FFFFFF"><span class="style8">第一页</span></TD>
        </Tr>
    </TABLE>

    <!-- 下面这个网页元素就是用于打印时分隔页面-->
    <div id="pageNext1" style="visibility:hidden;">
        <p class="PageNext"></p>
    </div>

    <TABLE width="100%" height="100" border="1" bordercolor="#000066">
        <Tr>
            <TD align="center" bgcolor="#FFFFFF"><span class="style8">第二页</span></TD>
        </Tr>
    </TABLE>

    <!-- 下面这个网页元素就是用于打印时分隔页面-->
    <div id="pageNext1" style="visibility:hidden;">
        <p class="PageNext"></p>
    </div>

    <TABLE width="100%" height="100" border="1" bordercolor="#000066">
        <Tr>
            <TD align="center" valign="top" bgcolor="#FFFFFF"><span class="style8">第三页</span> <br>
                打印时隐藏的Html元素: <br>
                1、
                <input type=button value="表单元素" class="Noprint">
                <p></p>
                2、
                <table border="1" bordercolor="#000000" class="Noprint">
                    <tr>
                        <td>表格元素</td>
                    </tr>
                </table>
                <p></p>
                3、<font class="Noprint">隐藏的文字</font> </TD>
        </Tr>
    </TABLE>
</body>
</html>
 


一、如何分隔打印页面:

  1.使用样式

以下是引用片段:

<!--控制分页-->
.PageNext{page-break-after: always;} 


  2.插入分页符

以下是引用片段:

<!-- 下面这个网页元素就是用于打印时分隔页面-->
<div id="pageNext1" style="visibility:hidden;">
  <p class="PageNext"></p>
</div> 


  其中的div标签的定义属性style="visibility:hidden;",用于避免<p class="PageNext"></p>对页面的布局造成影响,你可以按照自己的理解,灵活使用,只要不干扰原有的布局,就可以了。
  当然,你也可以使用其它html标签的分页样式:例如:<table class="PageNext">、<font class="PageNext"></font>等等,至于能否达到预想效果,可自己测试一下。

二、如何打印时隐藏非打印页面元素:

  有些内容,例如:表格、按钮、文字,如果只想在页面中显示,而在打印时不想打印出来,那么在样式定义中,而且必须有<style media=print>,且在页面中的需要隐藏的元素里加上Noprint这个样式,在打印预览时就可以看到效果了。

以下是引用片段:

<style media=print>  
  .Noprint{display:none;}<!--用本样式在打印时隐藏非打印项目-->  
</style>
 


以下是引用片段:

<input type=button value="表单元素" class="Noprint">
<table border="1" bordercolor="#000000" class="Noprint"><tr><td>表格元素</td></tr></table>
<font class="Noprint">隐藏的文字</font> 


三、打印调试时,使用虚拟打印机,节约纸张

  如果你安装Adobe Acrobat 7.0 Professional时,会在系统安装一个虚拟打印机:Adobe PDF,这个与普通打印机一样,不过,打印时,生成一个pdf文件,可以看到打印的效果。类似的软件有很多,例如:fineprint。不过,最终的测试还是要在真实的打印机上纸质输出,因为两者的打印效果还是会有差别的。 
  如果使用Adobe PDF生成pdf文件以后,当pdf页面100%显示,如果页面中有表格,那么表格的显示可能会变形,所以必须再次调高放大倍数。

 

=========================================================

说明:还有一种分页方法,在DOC文档另存为htm格式后,打开文件,加入

  要分页的地方插入如下内容:

<span lang=EN-US style='font-size:12.0pt;font-family:宋体;mso-bidi-font-family:
宋体;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA'><br
clear=all style='page-break-before:always;mso-break-type:section-break'>
</span>

 

也可以实现分页打印。

=========================================================

原创粉丝点击