tcpdf:阻止块内的分页

tcpdf:阻止块内的分页,tcpdf,Tcpdf,我正在使用TCPDF打印一些数据表:一个大表(虽然通常不超过一页),然后是第二个较小的表。 在某些情况下,两个表的长度比一个页面长,因此TCPDF在第二个表的中间插入了一个分页。我的客户希望避免这种行为:如果两个表不能放在一个页面上,他们宁愿将第二个表完全放在新页面上,即在表之前插入分页符 当然,如果两个表都适合一页,则不应使用分页符 那么,是否有人知道是否有方法指示TCPDF不要在给定的表中插入分页符?提前计算第二个表的高度。如果需要,请使用checkPageBreak方法添加分页符。启动事务

我正在使用TCPDF打印一些数据表:一个大表(虽然通常不超过一页),然后是第二个较小的表。
在某些情况下,两个表的长度比一个页面长,因此TCPDF在第二个表的中间插入了一个分页。我的客户希望避免这种行为:如果两个表不能放在一个页面上,他们宁愿将第二个表完全放在新页面上,即在表之前插入分页符

当然,如果两个表都适合一页,则不应使用分页符


那么,是否有人知道是否有方法指示TCPDF不要在给定的表中插入分页符?

提前计算第二个表的高度。如果需要,请使用checkPageBreak方法添加分页符。

启动事务,插入表格,检查是否在新页面中,如果是,请在插入表格之前回滚并添加页面

非常重要:不要忘记真正的调用回滚:

$this->startTransaction(); 
$start_page = $this->getPage();                       
$this->writeHTMLCell( 0, 0, '', '', $html, 0, 1, false, true, 'C'  );
$end_page = $this->getPage();
if  ($end_page != $start_page) {
    $this->rollbackTransaction(true); // don't forget the true
    $this->AddPage();
    $this->writeHTMLCell( 0, 0, '', '', $html, 0, 1, false, true, 'C'  );
}else{
    $this->commitTransaction();     
} 
希望能有帮助
michel

根据文档,有一个选项可以将nobr=“true”作为属性添加到表标记中

 $tbl = <<<EOD
<table border="1" cellpadding="2" cellspacing="2" nobr="true">
 <tr>
  <th colspan="3" align="center">NON-BREAKING TABLE</th>
 </tr>
 <tr>
  <td>1-1</td>
  <td>1-2</td>
  <td>1-3</td>
 </tr>
</table>
EOD;

$pdf->writeHTML($tbl, true, false, false, false, '');

$tbl=这是一个老问题,与我无关,所以我现在无法测试你的答案。不过还是要谢谢你!使用这种方法时要小心,以确保$html内容永远不会超过一页。在这种情况下,结束页将始终不等于起始页,脚本将继续添加空白页。IF语句中的标志允许您跟踪是否已添加空白,并允许您强制停止或警告。即使内容溢出页面边界,getPage()也可以返回相同的值。我必须计算可打印面积并确定Y是否离开了当前页面:
if($this->getY()>=($this->getPageHeight()-$this->getMargins()['top']-$this->getMargins()['bottom'])