public function getCurrentRowHeight($row) {
        // get the max height for this row
        $h = $this->getColumnHeight();
        $this->setRowHeight($h);
        if (!isset($this->rowDefinition['_content'])) {
            $this->rowDefinition['_content'] = [];
        }
        foreach ($this->columnDefinition as $key => $def) {
            $h = $def['height'];
            if ($h > $this->getRowHeight()) {
                $this->setRowHeight($h);
            }
            $this->rowDefinition['_content'][$key] = $h;
            if ((!isset($row[$key]) && !is_callable($def['renderer']) && !is_callable($def['drawFn'])) || !$def['isMultiLine']) {
                continue;
            }
            $data = $this->fetchDataByUserFunc($def, isset($row[$key]) ? $row[$key] : '', $key, $row, false, true);
            $hd = $this->trigger(self::EV_CELL_HEIGHT_GET, [$key, $data, $row], true);
            if ($hd === null) {
                $data_to_check = $data;
                if ($def['isHtml']) {
                    // getNumLines doesn't care about HTML. To simulate carriage return,
                    // we replace <br> with \n. Any better idea? Transactions?
                    $data = str_replace(["\n", "\r"], '', $data);
                    $data_to_check = strip_tags(str_replace(['<br>', '<br/>', '<br />'], PHP_EOL, $data));
                }
                $nb = $this->pdf->getNumLines($data_to_check, $def['width'],
                    $def['reseth'], $def['autoPadding'],
                    $def['cellPadding'], $def['border']);

                $hd = $nb * $h;
                $this->rowDefinition['_content'][$key] = $hd;
            }
            if ($hd > $this->getRowHeight()) {
                $this->setRowHeight($hd);
            }
        }
        return $this->getRowHeight();
    }