`
taody
  • 浏览: 100091 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java中基于Web的打印方案比较分析(四)WEB打印分页设置...

 
阅读更多

欢迎访问java技术交流学习社区资源论坛http://www.javadt.com
该文章转载自

在讲述如何分页打印之前,我们有必要先了解一下css中不为人知的一些用法。

  css里media的使用

  我们在网页里引用外部的css文件时,通常是用如下的代码:

<link rel="stylesheet" type="text/css" href="mycss.css">  


  实际上,上面的link对象里,我们是省略了一个叫“media”的属性,这个属性指定样式表规则用于指定的设备类型。它有如下值可用:

  all-- 用于所有设备类型

  aural-- 用于语音和音乐合成器

  braille-- 用于触觉反馈设备

  embossed-- 用于凸点字符(盲文)印刷设备

  handheld-- 用于小型或手提设备

  print-- 用于打印机

  projection-- 用于投影图像,如幻灯片

  screen-- 用于计算机显示器

  tty-- 用于使用固定间距字符格的设备。如电传打字机和终端

  tv-- 用于电视类设备

  这么多的值,并不是每个都可用,因为浏览器厂商并没有全部实现它们。

  在IE里面,可用的值有all,print,screen三个。上面的代码里,我们没有使用“media”,实际上IE或其他浏览器是用了“all”这个值。“screen”,用于显示器,也就是我们一般看到的效果。“print”,用于打印的效果。

  也就是说,我们没有指定“media”,那么我们看到的效果和打印的效果,它们用的都是同样的css文件。如果我们指定了一个“screen”,又指定了一个“print”,那么在打印时就会用“print”指定的css来渲染网页并打印。例如一个网页里有如下代码:


<link rel="stylesheet" type="text/css" media="screen" href="mycss.css">    

<link rel="stylesheet" type="text/css" media="print" href="myprintcss.css">   

  那就表示,我们通过IE看到的网页,用到的css文件是mycss.css,而通过IE打印时用到的css文件则是myprintcss.css。想到什么了吗?对,我们可以通过print的设置,来让网页上的一些不需要打印的内容隐藏起来,比如,打印按钮。实际上,media还可以这样使用:

<style media=print>  

//这里定义你要打印时用到的css类   

</style>  

  或者这样使用:

<style>  

@media print {    

//这里定义你要打印时用到的css类    

}    

</style>  

  css里用于打印的属性

  page-break-after : auto | always | avoid | left | right | null

  参数:

  auto : 假如需要在对象之后插入页分割符

  always :始终在对象之后插入页分割符

  avoid : 避免在对象后面插入页分割符

  left : 在对象后面插入页分割符直到它到达一个空白的左页边

  right :在对象后面插入页分割符直到它到达一个空白的右页边

  null : 空值。IE5用来取消页分割符设置

  这个page-break-after,主要用来在打印时插入一个分页符,分页就靠它了。它还有个双胞胎的兄弟,叫page-break-before,参数和它一样,看名字即知道它是用来在对象之前插入分页符。

示例

  在理解了以上两个css用法后,下面通过一个示例来说明如何分页。

<HTML>  

 <HEAD>  

  <TITLE> Javadt.com书城订单明细</TITLE>  

  <style>  

  @media print{   

  .toolbar{display:none;}   

  }   

  .toolbar{border:1px solid #6A9BFA;background:#E8F7E8;}   

  .paging{page-break-after :always}   

  td{font-size:12px;color:#000000;}   

  </style>  

 </HEAD>  


<BODY>  

 <div class='toolbar'>  

 <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)>  

<input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>  

<input type=button value=页面设置 onclick=document.all.WebBrowser.ExecWB(8,1)>  

<input type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)>  

</div>  

 <TABLE width="100%" border="0"><THEAD style="display:table-header-group;font-weight:bold">  

<TR><TD colspan="5"  align="center" >Javadt.com书城订单明细</TD>  

  </TR>  

  <TR>  

      <TD>书名</TD>  

      <TD>价格</TD>  

      <TD>送货地址</TD>  

      <TD>送货时间</TD>  

      <TD>状态</TD>  

    </TR>  

</THEAD>  

   <TR>  

    <TD>《Java 编程思想》</TD>  

    <TD>¥60.00</TD>  

    <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

    <TD>2009-8-8</TD>  

    <TD>已送达</TD>  

   </TR>  

   <TR>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR class='paging'>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR >  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD>伊拉克巴格达总统府9栋8单元7门654室</TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

   <TR>  

     <TD>《Java 编程思想》</TD>  

     <TD>¥60.00</TD>  

     <TD><B>伊拉克巴格达总统府9栋8单元7门654室</B></TD>  

     <TD>2009-8-8</TD>  

     <TD>已送达</TD>  

   </TR>  

  <TFOOT style="display:table-footer-group;font-weight:bold">  

<TR>  

<TD colspan="5"  align="left" >以上内容纯属虚构</TD>  

</TR>  

</TFOOT>  

 </TABLE>  

</BODY>  

</HTML>  

以上代码在IE中浏览的效果如下图。


  点击打印预览,第一页如下图。


  第二页如下图。


  我们发现,在我们加入分页符的那行后面,自动被分到第二页了。这个例子还有一个功能,就是每页都有相同的表头和表尾,这是利用display:table-header-group和display:table-footer-group来实现的。

  本例分页的效果,主要取决于表格里每行的高度,如果有某行很高,则会导致一些问题。如果每行都是固定高度,那么用这种方法则是最简单方便的。

  到现在为止,我们讲述的都是利用IE本身提供的控件在进行打印设置,这种方法有它的局限:不能够以编程的方式进行页面方向的设置,而这有时很重要。接下来本道将在《[Javadt原创]Web打印系列教程之五--使用ScriptX进行复杂的WEB打印设置》中进行介绍。

转载请注明:转自http://javadt.com,请保留文章的完整。

2
0
分享到:
评论

相关推荐

    基于Java-Web的分页技术研究.pdf

    文章通过对Java-Web分页技术的研究,为开发者提供了一种有效管理大量数据和提升用户体验的解决方案。分页技术不仅提高了信息检索的效率,还通过合理管理数据存储、优化查询效率和确保数据的正确显示,确保了系统在...

    分页代码(java)基于web

    在Web开发中,分页是一种常见的功能,尤其是在处理大量数据时,如用户浏览商品列表、论坛帖子等。分页能够有效地提升用户体验,避免一次性加载过多数据导致页面响应慢或者内存消耗过大。本代码示例主要关注Java语言...

    java分页web实现

    Java分页技术是Web开发中的一个关键组成部分,尤其是在处理大量数据时,为了提高用户体验和系统性能,分页显得尤为重要。本教程将详细讲解如何在Java环境下实现Web应用的分页功能,并提供一个测试数据库供学习者参考...

    Java实现真分页.自己领悟.

    这里我们通过分析标题、描述以及提供的文件名,可以推测出一个基于自定义标签库(Tag Library)的分页解决方案。 首先,`GenPage.java`可能是一个关键类,它可能负责计算总页数和每页的数据量,根据数据库查询结果...

    基于Java-Web的分页技术研究.zip

    二、Java Web分页实现方式 1. JDBC分页:通过设置SQL语句中的LIMIT或OFFSET子句实现。这种方式简单直接,但不适用于跨数据库的项目,因为不同的数据库系统对分页的语法支持不同。 2. JPA(Java Persistence API)/...

    java web项目分页通用实现

    在Java Web开发中,分页是一项非常常见的需求,它能够帮助用户更有效地浏览大量数据,提高用户体验。本DEMO主要展示了如何实现一个通用的分页功能,覆盖了后台和前台的处理逻辑。以下是对这个主题的详细阐述: 一、...

    JAVA分页大全.txt

    根据提供的文件信息,我们可以深入探讨Java分页技术的相关知识点,特别是Struts框架中的分页实现。下面将详细介绍分页的基本概念、Struts框架中的分页处理方式以及如何使用自定义的`PageController`类来实现分页功能...

    Web系统页面打印技术实现与分析V1.0.pdf

    #### 二、常用Web页面打印方案 **2.1 浏览器的打印功能** 最简单的打印方法就是直接使用浏览器内置的打印功能。这种方法无需额外安装软件,但是其缺点也非常明显:无法精确控制分页位置,难以调整边距和字体对齐,...

    锐洋Java Web打印控件

    ePrint是一个全面强大的web打印的解决方案。它可以直接在IE浏览器中可视化的设计各种复杂的打印模版, 轻松解决Web套打问题。也可以直接打印用ASP,JSP等动态程序生成的HTML页面。 ePrint内含一个在vc7.0上开发的...

    java实现web的打印

    java实现web的打印,可以分页打印,可以批量打印,可以根据格式选择打印

    Java报表工具打印方案集锦

    Java报表工具打印方案集锦主要关注的是在Java环境中如何实现Web报表的打印功能。随着B/S架构的普及,报表在网页浏览器中展示,但由于浏览器自身的打印功能局限性,报表工具通常需要提供自己的打印解决方案。目前,...

    java web 分页 设计

    在Java Web开发中,当需要展示大量数据时,通常会采用分页技术来提高用户体验和减轻服务器负担。分页可以有效地控制每次加载的数据量,使得用户界面更加流畅,并且能够减少服务器资源消耗。 #### 二、通用分页模块...

    Java Web中分页标签的使用说明

    在Java Web开发中,分页是必不可少的功能,它允许用户以更易管理的方式查看大量数据。本篇文章将详细讲解如何在Java Web应用中使用分页标签。我们将主要围绕以下两个核心概念进行讨论:源码理解和工具的使用。 首先...

    java后台分页.docx

    Java 后台分页是Web应用开发中一个常见的需求,特别是在大数据量的场景下,为了提高用户体验和系统性能,分页技术显得尤为重要。本篇将详细介绍如何在Java中实现后台分页,包括SQL语句的分页、Hibernate的分页以及...

    java简单分页.txt

    本文将详细介绍一种简单的Java分页实现方法,该方法不仅易于理解且广泛应用于基于JDBC(Java Database Connectivity)和Hibernate等技术栈的项目中。 #### 二、分页原理与实现 ##### 2.1 分页基本概念 分页是指将...

    java web利用数据库分页

    在Java Web开发中,数据库分页是一种常见的技术,用于处理大量数据时提高应用程序的性能和用户体验。当数据集过大,一次性加载所有记录到用户界面可能导致内存压力和响应速度下降。因此,分页允许用户逐步浏览数据,...

    对分页进行了封装,PageUtil.java工具类

    在IT行业中,分页是一种常见的数据处理方式,特别是在大数据量的Web应用中,为了提高页面加载速度和用户体验,通常会采用分页展示数据。这里提到的"对分页进行了封装,PageUtil.java工具类"是一个Java实现的分页辅助...

    java web分页项目

    【Java Web分页项目】是基于Java和JSP技术实现的一个Web应用程序,主要目标是解决在Web应用中处理大量数据时的效率问题。在数据库驱动的Web应用中,一次性加载所有数据可能导致页面加载慢,用户体验下降,甚至服务器...

    java web与Oracle数据的分页功能

    本项目提供的源代码正是针对这一需求,提供了在Java Web环境中利用Oracle数据库实现分页功能的解决方案。 首先,我们来理解一下分页的基本概念。分页是将数据库查询结果分成若干页展示,用户可以逐页浏览,而不是一...

    Java分页jar包pager.jar

    总的来说,`pager.jar`是一个强大的Java Web分页解决方案,通过提供预定义的标签库,使开发者能专注于业务逻辑,而无需关注底层分页细节。它的存在极大提升了开发效率,降低了项目复杂性。在使用过程中,配合详细的...

Global site tag (gtag.js) - Google Analytics