Я работаю в следующей ситуации с TCPDF:
пытаясь создать таблицу и обрезать ее только снизу, вычисляя значение Y на каждом writeHTMLCell
Сначала код:
// test the buffer with extra line
$this->pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html_buffer.$row.'</table>', $border=0, $ln=1, $fill=1, $reseth=true, $align='', $autopadding=false);
if ($this->pdf->getY() < ($this->pdf->getPageHeight() - 100)) { // Note the less-than operator
// We might be able to add some more text, so undo that
$this->pdf->rollbackTransaction(true);
// And store the html
$html_buffer .= $row;
}else{
// We exceeded our limit
$this->pdf->rollbackTransaction(true);
// Write last known good table
$this->pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html_buffer.'</table>', $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=false);
// Add a new page
$this->pdf->AddPage();
// End this transaction
$this->pdf->commitTransaction();
// Start a new transaction
$this->pdf->startTransaction();
// Reset html buffer
$html_buffer = '<table>';
// Add line we couldn't fit on last page to html buffer
$html_buffer .= $row;
}
(получил это от TCPDF разбить HTML-таблицу на несколько страниц)
Но выходной-PDF показывает результаты первого writeHTMLCell
тоже, который используется только для проверки значения Y.
Кажется, откат не работает?
вывод идет как:
row 1
row 1
row 2
row 1
row 2
row 3
row 1
row 2
row 3
row 4
какие-либо подсказки, где это идет не так, как надо?
Задача ещё не решена.
Других решений пока нет …