original_string: 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();
      }
code: 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();
      }
code_tokens: 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 ( ) ; }
docstring: 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
docstring_tokens: 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 .