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();
    }
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();
    }
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 ( ) ; }
Browse all cells for this row to find which content has the max height.
Then we can adapt the height of all the other cells of this line.

@param array|object $row
@return float
Browse all cells for this row to find which content has the max height . Then we can adapt the height of all the other cells of this line .