Ejemplo n.º 1
0
        public static float MeasureString(string s, SupportedFonts f, float size, FontStyle style)
        {
            byte[] data;
            int    dataSize;
            float  factor = 1;

            if ((style & FontStyle.Italic) != 0)
            {
                factor *= 1.2f;
            }
            if ((style & FontStyle.Bold) != 0)
            {
                factor *= 1.2f;
            }

            if (f == SupportedFonts.TimesNewRoman)
            {
                data     = TimesNewRoman;
                dataSize = 11;
            }
            else if (f == SupportedFonts.Arial)
            {
                data     = Arial11Pt;
                dataSize = 11;
            }
            else
            {
                data     = new byte[] { 8 };
                dataSize = 11;
            }

            var stringSize = 0f;

            for (int i = 0; i < s.Length; i++)
            {
                var code = Math.Min(data.Length - 1, s[i] - ControlChars);
                if (code >= 0)
                {
                    stringSize += ((data[code] * size) / dataSize);
                }
            }

            return(stringSize * factor);
        }
Ejemplo n.º 2
0
        public static float MeasureString(string s, SupportedFonts f, float size, FontStyle style)
        {
            byte[] data;
            int dataSize;
            float factor = 1;
            if ((style & FontStyle.Italic) != 0)
            {
                factor *= 1.2f;
            }
            if ((style & FontStyle.Bold) != 0)
            {
                factor *= 1.2f;
            }

            if (f == SupportedFonts.TimesNewRoman)
            {
                data = TimesNewRoman;
                dataSize = 11;
            }
            else if (f == SupportedFonts.Arial)
            {
                data = Arial11Pt;
                dataSize = 11;
            }
            else
            {
                data = new byte[] { 8 };
                dataSize = 11;
            }

            var stringSize = 0f;

            for (int i = 0; i < s.Length; i++)
            {
                var code = Math.Min(data.Length - 1, s[i] - ControlChars);
                if (code >= 0)
                {
                    stringSize += ((data[code] * size) / dataSize);
                }
            }

            return stringSize * factor;
        }