code: def _splitit(self, line, isheader):
          
  
          line_wrapped = []
          for cell, width in zip(line, self._width):
              array = []
              for c in cell.split('\n'):
                  array.extend(textwrap.wrap(unicode(c, 'utf'), width))
              line_wrapped.append(array)
          max_cell_lines = reduce(max, map(len, line_wrapped))
          for cell, valign in zip(line_wrapped, self._valign):
              if isheader:
                  valign = "t"
              if valign == "m":
                  missing = max_cell_lines - len(cell)
                  cell[:0] = [""] * (missing / 2)
                  cell.extend([""] * (missing / 2 + missing % 2))
              elif valign == "b":
                  cell[:0] = [""] * (max_cell_lines - len(cell))
              else:
                  cell.extend([""] * (max_cell_lines - len(cell)))
          return line_wrapped
docs: Split each element of line to fit the column width
  
          Each element is turned into a list, result of the wrapping of the
          string to the desired width