void AppendRtfBody(StringBuilder r, Dictionary <int, int> colorTableIndex, Dictionary <string, int> fontTable) { var n = PlainText.Length; var pc = new Classes(); var inspan = false; var sc = new RichTextAttributes("merged"); for (var i = 0; i < n; i++) { var cs = classes[i]; if (cs.Class1 != pc.Class1 || cs.Class2 != pc.Class2 || cs.Class3 != pc.Class3 || cs.Class4 != pc.Class4) { if (inspan) { //r.Append (!string.IsNullOrEmpty (sc.Link) ? "}}}}}" : "}"); r.Append('}'); } inspan = true; r.Append('{'); sc.Reset(); sc.Merge(cs.Class1); sc.Merge(cs.Class2); sc.Merge(cs.Class3); sc.Merge(cs.Class4); sc.AppendRtf(r, colorTableIndex, fontTable); } pc = cs; // // Write the char // var ch = PlainText[i]; if (ch == '\\' || ch == '{' || ch == '}') { r.Append('\\'); r.Append(ch); } else if (ch == '\n') { r.AppendLine(@"\par"); } else if (ch == '\r') { // Nothing } else { r.Append(ch); } } if (inspan) { //r.Append (!string.IsNullOrEmpty (sc.Link) ? "}}}}}" : "}"); r.Append('}'); } }
void AppendRtfBody (StringBuilder r, Dictionary<int, int> colorTableIndex, Dictionary<string, int> fontTable) { var n = PlainText.Length; var pc = new Classes (); var inspan = false; var sc = new RichTextAttributes ("merged"); for (var i = 0; i < n; i++) { var cs = classes[i]; if (cs.Class1 != pc.Class1 || cs.Class2 != pc.Class2 || cs.Class3 != pc.Class3 || cs.Class4 != pc.Class4) { if (inspan) { //r.Append (!string.IsNullOrEmpty (sc.Link) ? "}}}}}" : "}"); r.Append ('}'); } inspan = true; r.Append ('{'); sc.Reset (); sc.Merge (cs.Class1); sc.Merge (cs.Class2); sc.Merge (cs.Class3); sc.Merge (cs.Class4); sc.AppendRtf (r, colorTableIndex, fontTable); } pc = cs; // // Write the char // var ch = PlainText[i]; if (ch == '\\' || ch == '{' || ch == '}') { r.Append ('\\'); r.Append (ch); } else if (ch == '\n') { r.AppendLine (@"\par"); } else if (ch == '\r') { // Nothing } else { r.Append (ch); } } if (inspan) { //r.Append (!string.IsNullOrEmpty (sc.Link) ? "}}}}}" : "}"); r.Append ('}'); } }