protected string extractTokenList(LinkedList <Token> tokList) { LinkedListNode <Token> node; StringBuilder result = new StringBuilder(); node = tokList.First; while (node != null) { if (node.Value.isControl) { result.Append(node.Value.text); } else { result.Append(RtfUtility.unicodeEncode(node.Value.text)); } node = node.Next; } return(result.ToString()); }
public override string render() { StringBuilder rtf = new StringBuilder(); // --------------------------------------------------- // Prologue // --------------------------------------------------- rtf.AppendLine(@"{\rtf1\ansi\deff0"); rtf.AppendLine(); // --------------------------------------------------- // Insert font table // --------------------------------------------------- rtf.AppendLine(@"{\fonttbl"); for (int i = 0; i < _fontTable.Count; i++) { rtf.AppendLine(@"{\f" + i + " " + RtfUtility.unicodeEncode(_fontTable[i].ToString()) + ";}"); } rtf.AppendLine("}"); rtf.AppendLine(); // --------------------------------------------------- // Insert color table // --------------------------------------------------- rtf.AppendLine(@"{\colortbl"); rtf.AppendLine(";"); for (int i = 1; i < _colorTable.Count; i++) { RtfColor c = _colorTable[i]; rtf.AppendLine(@"\red" + c.Red + @"\green" + c.Green + @"\blue" + c.Blue + ";"); } rtf.AppendLine("}"); rtf.AppendLine(); // --------------------------------------------------- // Preliminary // --------------------------------------------------- rtf.AppendLine(@"\deflang" + (int)_lcid + @"\plain\fs" + RtfUtility.pt2HalfPt(DefaultValue.FontSize) + @"\widowctrl\hyphauto\ftnbj"); // page size rtf.AppendLine(@"\paperw" + RtfUtility.paperWidthInTwip(_paper, _orientation) + @"\paperh" + RtfUtility.paperHeightInTwip(_paper, _orientation)); // page margin rtf.AppendLine(@"\margt" + RtfUtility.pt2Twip(_margins[Direction.Top])); rtf.AppendLine(@"\margr" + RtfUtility.pt2Twip(_margins[Direction.Right])); rtf.AppendLine(@"\margb" + RtfUtility.pt2Twip(_margins[Direction.Bottom])); rtf.AppendLine(@"\margl" + RtfUtility.pt2Twip(_margins[Direction.Left])); // orientation if (_orientation == PaperOrientation.Landscape) { rtf.AppendLine(@"\landscape"); } // header/footer if (_header != null) { rtf.Append(_header.render()); } if (_footer != null) { rtf.Append(_footer.render()); } rtf.AppendLine(); // --------------------------------------------------- // Document body // --------------------------------------------------- rtf.Append(base.render()); // --------------------------------------------------- // Ending // --------------------------------------------------- rtf.AppendLine("}"); return(rtf.ToString()); }