先取得没页打印的表格高度,和总表格高度比较,只要小于,就打印。
具体可以看看java专业编程这本书,写的很详细!

解决方案 »

  1.   

    表格的数据应该是从数据库里面提取出来的吧,即使不是,统计其长度应该没有问题的,比如你是用vector存放它,通过vector.size取其数据长度。估计表头,表尾占去长度,不妨为5行,设定每页显示表格55行(具体看你的情况,若表格过于紧密会造成一行记录打印成两行)。设定分页相关参数
          //for print
          int iPageSize = 55;   //每页设定表格行数
          int iPageCount = 0 ;  //第n页数
          int iLastPage = 0 ;   //最后一页
          int iRecordCount = 0 ; //表格总数
          int iCount = 0 ;      //具体表格行数
          int iCurPage = 0;    //当前页数
    在jsp里面,先显示表头,比如
                          ××××报表
     打印日期:×××               打印地点:×××××按条显示表格记录
    <%
    for (int i=0; i<iRecordCount; i++) {
      if(iCount%iPageSize==0 && iCount!=0) {//第n页第一条记录时
    //重写表头信息,如上
    //显示记录
    ………………
      }
      iCount++;
      //为整页时
      if((iCount)%iPageSize==0 || iCount==iRecordCount) {
      //是本页或者最后一页最后一项
        if(iCount==iRecordCount) {
          //最后一页的表尾信息
    ---------------------------------
    依照需要写每页页尾信息,比如:
      <div align=center>
      <%
        //每页页尾信息
        if(iCount==iRecordCount) iCurPage=iPageCount;
        else iCurPage=iCount/iPageSize;
      %>
      第
      <%=iCurPage%>
      /
      <%=iPageCount%>
      页
      </div>
    ---------------------------------
    }
    %>