使用css和prince无法使用分页符

时间:2014-09-18 12:44:39

标签: html css page-break princexml

我无法使用css和prince在我的pdf中获取分页符。第二张表触及第一张表。我究竟做错了什么?我想我可能误解了如何在css中使用指令进行打印,从我的角度来看,我看起来就像用户指南正在告诉我的那样(link

我的代码如下:



@page { size: 210mm  297mm;   
}

chapter {page-break-before: always;} 

table.page{
  width:14cm;
  font-family:"Times New Roman";
  font-size: 12pt;
  border: 1px solid black;
  text-align:justify;
  padding:0;
  margin:0;
}

td.number{
  width:1.8cm;
  font-family:"Times New Roman" ;
  font-size: 12pt;
  text-align:justify;
  padding:0;
  margin:0;
}

td.content{
  width:12cm;
  font-family:"Times New Roman";
  font-size: 12pt;
  text-align:justify;
  padding:0;
  margin:0;
}

<body>
    <chapter>
        <table class="page">
            <tr>
                <td colspan="2">
                     <h1>Title </h1>

                </td>
            </tr>
            <tr>
                <td class="number">
                    <div>1</div>
                </td>
                <td class="content">
                    <div>this is some text</div>
                </td>
            </tr>
        </table>
    </chapter>
    <chapter>
        <table class="page">
            <tr>
                <td colspan="2">
                     <h1>Title 2</h1>

                </td>
            </tr>
            <tr>
                <td class="number">
                    <div>2</div>
                </td>
                <td class="content">
                    <div>this is some more text</div>
                </td>
            </tr>
        </table>
    </chapter>
</body>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

自己找到答案:章节被认为是空的。如果我使用table class =“page”元素来指定分页符,则可以正常工作。

答案 1 :(得分:0)

仅适用于块元素

  

适用于: 阻止 - 根元素正常流中的级别元素。用户代理也可以将其应用于其他元素   表格元素。

它不会适用于不会生成框的空<div>

  

注意:此属性正在被更通用的break-before替换。这个新属性也处理列和   区域中断并且在语法上与...相容   page-break-before

     

在使用page-break-before之前,请检查是否可以使用break-before   代替。将来page-break-before将仅仅是别名   它的一些价值。

Source

解决方案

只需将inline元素转换为block元素(假设您可以负担得起),即可解决此限制。

.pagebreak {
    display: block;
    page-break-before: always;
}