我正在使用TCPDF打印一些数据表:一个大表(虽然通常不长于一页),然后是第二个较小的表。
在某些情况下,两个表一起长于一页,因此TCPDF在第二个表的中间插入分页符。我的客户希望避免这种行为:他们宁愿将第二个表完全放在新页面上,即在表之前插入分页符,如果两个表都不适合单个页面。
当然,如果两个表都适合一个页面,则不应使用分页符。
那么有人知道是否有办法指示TCPDF 不在给定的表中插入分页符?
答案 0 :(得分:13)
启动交易,插入表格,检查您是否在新页面中,如果是,则回滚并在填写表格之前添加页面。
非常重要:不要忘记TRUE调用回滚:
$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();
}
希望它有所帮助 米歇尔
答案 1 :(得分:7)
根据文档,可以选择将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, '');
答案 2 :(得分:-1)
预先计算第二张桌子的高度。如果需要,请使用checkPageBreak方法添加分页符。