/// <summary> /// Outputs the report as an ASCII table. /// </summary> /// <param name="report"> the report </param> /// <param name="out"> the output stream to write to </param> public virtual void writeAsciiTable(R report, Stream @out) { IList <Type> columnTypes = getColumnTypes(report); IList <AsciiTableAlignment> alignments = IntStream.range(0, columnTypes.Count).mapToObj(i => calculateAlignment(columnTypes[i])).collect(toImmutableList()); IList <string> headers = report.ColumnHeaders; ImmutableList <ImmutableList <string> > cells = formatAsciiTable(report); string asciiTable = AsciiTable.generate(headers, alignments, cells); PrintWriter pw = new PrintWriter(new StreamWriter(@out, Encoding.UTF8)); pw.println(asciiTable); pw.flush(); }