打印带有强制分页符的表格

Posted

技术标签:

【中文标题】打印带有强制分页符的表格【英文标题】:Printing tables with forced page breaks 【发布时间】:2013-03-11 06:39:08 【问题描述】:

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

这里是代码sn-p -

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>

非常感谢您对此提供的任何帮助。

谢谢。

【问题讨论】:

回显不需要括号,你可以去掉它们:) 如果有帮助,我会引用另一篇帖子Setting float:none on all parent elements makes page-break-before:always work correctly.。根据 >***.com/questions/4884380/… 非常感谢!!我添加了 page-break-before 而不是 page-break-after 并在每个父元素上将 float 设置为 none,它就像一个魅力!再次感谢。 【参考方案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>" );
 

【讨论】:

谢谢!我已经尝试过您建议的第二种解决方案,但 IE 仍然会打印自然分页的标题。

以上是关于打印带有强制分页符的表格的主要内容,如果未能解决你的问题,请参考以下文章

替代 PDF 用于动态生成的带有分页符的文档

如何从Google表格下载具有特定边距和分页符的PDF文件?

java 带有列表分页符的ListUtils

WORD中怎样设置分页符

打印文档时强制分页符

页面设置中“分页符”和“下一页”的区别是啥?