Я хотел подобную функциональность и остановился на использовании транзакций.Это на TCPDF версии 5.9.125.
Я унаследовал свой собственный класс PDF от TCPDF и добавил свой собственный метод:
public function writeHTMLTogether($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='') {
$cp = $this->getPage();
$this->startTransaction();
$this->writeHTML($html, $ln, $fill, $reseth, $cell, $align);
if ($this->getPage() > $cp) {
$this->rollbackTransaction(true);//true is very important
$this->AddPage();
$this->writeHTML($html, $ln, $fill, $reseth, $cell, $align);
} else {
$this->commitTransaction();
}
}
Кажется, что он работает нормально.Без истинного в откате он ужасно ломается, так как writeHTML, похоже, хранит множество свойств где-то.
Может не потребоваться создание локальной переменной для текущей страницы ($ cp), поскольку я думаю, что она хранится.Но, эй.
Если вы все равно унаследуете написать свои собственные функции верхнего и нижнего колонтитула, не нужно много дополнительной работы.