private function _execPageBreakCallback($rowIndex, &$cellWidths, &$rowHeights, &$rowspanInfos, &$rows)
 {
     $table = $this->getTable();
     if (!($callback = $table->getPageBreakCallback())) {
         return;
     }
     $table->setRows(array());
     $callback($table);
     $numberOfNewRows = count($table->getRows());
     if ($numberOfNewRows > 0) {
         $converter = new self($table, $this->cacheDir);
         $converter->compile();
         // merge cell width
         array_splice($cellWidths, $rowIndex, 0, $converter->_getCellWidths());
         $this->cellWidths = $cellWidths;
         // merge row heights
         array_splice($rowHeights, $rowIndex, 0, $converter->_getRowHeights());
         $this->rowHeights = $rowHeights;
         // merge rowspan info
         $newRowspanInfos = $converter->_getRowspanInfos();
         $reverseKeys = array_keys($rowspanInfos);
         rsort($reverseKeys, SORT_NUMERIC);
         //array_splice($rowspanInfos, $rowIndex, 0, $converter->_getRowspanInfos());
         foreach ($reverseKeys as $r) {
             if ($r >= $rowIndex && isset($rowspanInfos[$r])) {
                 $rowspanInfos[$r + $numberOfNewRows] = $rowspanInfos[$r];
                 unset($rowspanInfos[$r]);
             }
         }
         $this->rowspanInfos = $rowspanInfos;
         array_splice($rows, $rowIndex, 0, $table->getRows());
     }
     $table->setRows($rows);
 }