RtfDomParser.RTFColorTable.IndexOf C# (CSharp) Method

IndexOf() public method

get color index
public IndexOf ( System c ) : int
c System color
return int
        public int IndexOf( System.Drawing.Color c )
        {
            if (c.A == 0)
            {
                return -1;
            }
            if( c.A != 255 )
            {
                c = System.Drawing.Color.FromArgb( 255 , c );
            }
            for (int iCount = 0; iCount < myItems.Count; iCount++)
            {
                System.Drawing.Color color = (System.Drawing.Color)myItems[iCount];
                if (color.ToArgb() == c.ToArgb())
                {
                    return iCount;
                }
            }
            return -1 ;
        }

Usage Example

Ejemplo n.º 1
0
        /// <summary>
        /// start write formatted text
        /// </summary>
        /// <param name="info">format</param>
        /// <remarks>
        /// This function must assort with WriteEndString strict
        /// </remarks>
        public void WriteStartString(DocumentFormatInfo info)
        {
            if (this.bolCollectionInfo)
            {
                myFontTable.Add(info.FontName);
                myColorTable.Add(info.TextColor);
                myColorTable.Add(info.BackColor);
                if (info.BorderColor.A != 0)
                {
                    myColorTable.Add(info.BorderColor);
                }
                return;
            }
            if (info.Link != null && info.Link.Length > 0)
            {
                myWriter.WriteStartGroup();
                myWriter.WriteKeyword("field");
                myWriter.WriteStartGroup();
                myWriter.WriteKeyword("fldinst", true);
                myWriter.WriteStartGroup();
                myWriter.WriteKeyword("hich");
                myWriter.WriteText(" HYPERLINK \"" + info.Link + "\"");
                myWriter.WriteEndGroup();
                myWriter.WriteEndGroup();
                myWriter.WriteStartGroup();
                myWriter.WriteKeyword("fldrslt");
                myWriter.WriteStartGroup();
            }

            switch (info.Align)
            {
            case RTFAlignment.Left:
                myWriter.WriteKeyword("ql");
                break;

            case RTFAlignment.Center:
                myWriter.WriteKeyword("qc");
                break;

            case RTFAlignment.Right:
                myWriter.WriteKeyword("qr");
                break;

            case RTFAlignment.Justify:
                myWriter.WriteKeyword("qj");
                break;
            }

            myWriter.WriteKeyword("plain");
            int index = 0;

            index = myFontTable.IndexOf(info.FontName);
            if (index >= 0)
            {
                myWriter.WriteKeyword("f" + index);
            }
            if (info.Bold)
            {
                myWriter.WriteKeyword("b");
            }
            if (info.Italic)
            {
                myWriter.WriteKeyword("i");
            }
            if (info.Underline)
            {
                myWriter.WriteKeyword("ul");
            }
            if (info.Strikeout)
            {
                myWriter.WriteKeyword("strike");
            }
            myWriter.WriteKeyword("fs" + Convert.ToInt32(info.FontSize * 2));

            // back color
            index = myColorTable.IndexOf(info.BackColor);
            if (index >= 0)
            {
                myWriter.WriteKeyword("chcbpat" + Convert.ToString(index + 1));
            }

            index = myColorTable.IndexOf(info.TextColor);
            if (index >= 0)
            {
                myWriter.WriteKeyword("cf" + Convert.ToString(index + 1));
            }
            if (info.Subscript)
            {
                myWriter.WriteKeyword("sub");
            }
            if (info.Superscript)
            {
                myWriter.WriteKeyword("super");
            }
            if (info.NoWwrap)
            {
                myWriter.WriteKeyword("nowwrap");
            }
            if (info.LeftBorder ||
                info.TopBorder ||
                info.RightBorder ||
                info.BottomBorder)
            {
                // border color
                if (info.BorderColor.A != 0)
                {
                    myWriter.WriteKeyword("chbrdr");
                    myWriter.WriteKeyword("brdrs");
                    myWriter.WriteKeyword("brdrw10");
                    index = myColorTable.IndexOf(info.BorderColor);
                    if (index >= 0)
                    {
                        myWriter.WriteKeyword("brdrcf" + Convert.ToString(index + 1));
                    }
                }
            }
        }