使用强制分页符打印表

时间:2013-03-21 16:21:10

标签: php html css printing

我有一个包含数百行的长表。要在每个页面上打印表头,我使用THEAD {display:table-header-group}来设置表的样式。它在Firefox和IE9中按预期工作。但是当我尝试强制分页时,如下面的代码所示,它在IE9中不起作用。使用IE9,表头只打印表自然断开的页面。

以下是代码段 -

CSS: 
@media print {
    thead { display: table-header-group; }
}

HTML/PHP:
    <table>
      <thead>
        <tr>
           <th>Header 1</th>
               <th>Header 2</th>
               <th>Header 3</th>        
           </tr>
      </thead>
      <tbody>
           <?php 
           foreach ($items as $item) {
               echo  " <tr> " ;
                  echo  "<td>text</td>" ;
                  echo  "<td>text</td>" ;
                  echo  "<td>text</td>" ;

                  if ($condition) {
                      echo  "</tr>" ;

                      echo  "<tr style='page-break-after:always;'>" ;
                      echo  "</tr>" ;
                  }
           }
           ?>
       </tbody>
    </table>

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

首先使用带有结束标记的正确HTML

if ($condition) {
   echo ( "</tr>" );
   echo ( "<tr style='page-break-after:always;'>" );
   echo ( "</tr>" );
} else {
   echo ( "</tr>" );
}

如果这没有帮助,请尝试

if ($condition) {
   echo ( "</tr>" );
   echo ( "<tr style='page-break-after:always;'>" );
   echo ( "</tr> " );
   echo ( ' <tr class="class_only_visible_when_printed"> ' );
   echo ( "  <th>Header 1</th> " );
   echo ( "  <th>Header 2</th> " );
   echo ( "  <th>Header 3</th> " );        
   echo ( " </tr> " );
} else {
   echo ( "</tr>" );
}