Ejemplo n.º 1
0
        public void AddMessage(DateTime dt, MsgType type, string from, string msg)
        {
            string col;

            switch (type)
            {
            case MsgType.Incoming:
                col = @"{\colortbl ;\red192\green80\blue77;}"; // Color.FromArgb(192, 080, 077);
                break;

            case MsgType.Outcoming:
                col = @"{\colortbl ;\red79\green129\blue189;}"; // Color.FromArgb(079, 129, 189);
                break;

            case MsgType.System:
                col = @"{\colortbl ;\red135\green157\blue059;}"; // Color.FromArgb(135, 157, 059);
                break;

            default:
                col = ""; //Color.Gray;
                break;
            }
            var sdt = dt.ToString("[HH:mm:ss]"); // [HH:mm:ss dd/MM/yy]
            var sb  = new StringBuilder();

            sb.Append(@"{\rtf\ansi ");
            sb.Append(col);
            sb.Append(@"{\b");
            {
                sb.Append(@"{\cf1");
                {
                    RtfUtil.EscapeString(sb, from);
                    sb.Append(' ');
                    RtfUtil.EscapeString(sb, sdt);
                }
                sb.Append('}');
            }
            sb.Append(@"}\line ");
            RtfUtil.EscapeString(sb, msg);
            sb.Append(@"\line\line}");
            var scrollPos    = rtbHistory.GetScrollPosition().Y + rtbHistory.ClientSize.Height;
            var maxScrollPos = rtbHistory.GetMaxScrollPosition();

            rtbHistory.AppendRtf(sb.ToString());
            if (scrollPos >= maxScrollPos)
            {
                rtbHistory.ScrollToEnd();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Converts an RTF string to plain text
        /// </summary>
        /// <param name="contents"></param>
        /// <returns></returns>
        public static string ToPlainText(string contents)
        {
            if (String.IsNullOrEmpty(contents))
            {
                return(String.Empty);
            }
            if (!contents.StartsWith("{\\rtf1"))
            {
                return(contents);
            }

            if (!RtfUtil.Rtf2Text(contents, out contents))
            {
                return(String.Empty);
            }
            return(contents);
        }