Ejemplo n.º 1
0
        private string GetMetrics(string fontName, float emHeight, bool isBold, bool isItalic)
        {
            if (textMetrics.TextFaceIsInstalled(fontName))
            {
                StringBuilder builder = new StringBuilder();

                ITextFaceMetrics metrics = textMetrics.GetTextFaceMetrics(fontName, emHeight, Util.GetTextEffects(isBold, isItalic));
                builder.AppendFormat("Font metrics: ");
                builder.AppendLine();
                builder.AppendFormat("  Em height: {0}", metrics.EmHeight);
                builder.AppendLine();
                builder.AppendFormat("  Ascent: {0}", metrics.Ascent);
                builder.AppendLine();
                builder.AppendFormat("  Descent: {0}", metrics.Descent);
                builder.AppendLine();
                builder.AppendFormat("  CapHeight: {0}", metrics.CapHeight);
                builder.AppendLine();
                builder.AppendFormat("  Ascent+Descent: {0}", metrics.Ascent + metrics.Descent);
                builder.AppendLine();
                builder.AppendFormat("  EmHeight-(Ascent+Descent): {0}", metrics.EmHeight - (metrics.Ascent + metrics.Descent));
                builder.AppendLine();
                builder.AppendFormat("  CapHeight+Descent: {0}", metrics.CapHeight + metrics.Descent);
                builder.AppendLine();
                builder.AppendFormat("  Space width: {0}", metrics.SpaceWidth);
                builder.AppendLine();
                return(builder.ToString());
            }
            else
            {
                return(string.Format("Face name '{0}' is not installed.", fontName));
            }
        }
Ejemplo n.º 2
0
        private void DrawSingleLineText(IGraphicsTarget g, string text, FontDesc fontDesc, PointF pt, StringAlignment horizAlignment, StringAlignment vertAlignment)
        {
            object font = new object();

            g.CreateFont(font, fontDesc.Name, fontDesc.EmHeight, fontDesc.TextEffects);

            ITextFaceMetrics fontMetrics = textMetrics.GetTextFaceMetrics(fontDesc.Name, fontDesc.EmHeight, fontDesc.TextEffects);
            SizeF            size        = fontMetrics.GetTextSize(text);

            switch (horizAlignment)
            {
            case StringAlignment.Near:
                break;

            case StringAlignment.Center:
                pt.X = pt.X - size.Width / 2F; break;

            case StringAlignment.Far:
                pt.X = pt.X - size.Width; break;
            }

            switch (vertAlignment)
            {
            case StringAlignment.Near:
                break;

            case StringAlignment.Center:
                pt.Y = pt.Y - size.Height / 2F; break;

            case StringAlignment.Far:
                pt.Y = pt.Y - size.Height; break;
            }

            g.DrawText(text, font, blackBrush, pt);

            fontMetrics.Dispose();
        }