/**
  * Renders table to output.
  *
  * Example:
  * +---------------+-----------------------+------------------+
  * | ISBN          | Title                 | Author           |
  * +---------------+-----------------------+------------------+
  * | 99921-58-10-7 | Divine Comedy         | Dante Alighieri  |
  * | 9971-5-0210-0 | A Tale of Two Cities  | Charles Dickens  |
  * | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
  * +---------------+-----------------------+------------------+
  */
 public function render()
 {
     $this->calculateNumberOfColumns();
     $rows = $this->buildTableRows($this->rows);
     $headers = $this->buildTableRows($this->headers);
     $this->calculateColumnsWidth(array_merge($headers, $rows));
     $this->renderRowSeparator();
     if (!empty($headers)) {
         foreach ($headers as $header) {
             $this->renderRow($header, $this->style->getCellHeaderFormat());
             $this->renderRowSeparator();
         }
     }
     foreach ($rows as $row) {
         if ($row instanceof TableSeparator) {
             $this->renderRowSeparator();
         } else {
             $this->renderRow($row, $this->style->getCellRowFormat());
         }
     }
     if (!empty($rows)) {
         $this->renderRowSeparator();
     }
     $this->cleanup();
 }
 /**
  * Renders table to output.
  *
  * Example:
  * +---------------+-----------------------+------------------+
  * | ISBN          | Title                 | Author           |
  * +---------------+-----------------------+------------------+
  * | 99921-58-10-7 | Divine Comedy         | Dante Alighieri  |
  * | 9971-5-0210-0 | A Tale of Two Cities  | Charles Dickens  |
  * | 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
  * +---------------+-----------------------+------------------+
  */
 public function render()
 {
     $this->renderRowSeparator();
     $this->renderRow($this->headers, $this->style->getCellHeaderFormat());
     if (!empty($this->headers)) {
         $this->renderRowSeparator();
     }
     foreach ($this->rows as $row) {
         if ($row instanceof TableSeparator) {
             $this->renderRowSeparator();
         } else {
             $this->renderRow($row, $this->style->getCellRowFormat());
         }
     }
     if (!empty($this->rows)) {
         $this->renderRowSeparator();
     }
     $this->cleanup();
 }