如何以浏览器的方式测量文本大小?

时间:2013-04-08 04:29:26

标签: internet-explorer c#-4.0 firefox gdi+

我正在尝试在独立应用程序(Windows或Java)中测量字符串的大小(以像素为单位),但此应用程序报告的大小与FF或IE中报告的字符串大小不匹配。

我使用下面的代码来测量字符串“Graphics”的大小,它返回97像素。 FF和IE报告字符串的大小为64像素。我唯一想到的就是dpi,但我明确地说明了这一点。

任何人都可以给我任何指示,我该如何实现这一目标?如前所述,我正在寻找一种独立的文本测量方法,但结果需要与浏览器的尺寸报告相媲美。

Bitmap bmp = new Bitmap(1, 1);
        SizeF f = new SizeF();
        bmp.SetResolution(CreateGraphics().DpiX, CreateGraphics().DpiY);

        using (Graphics g = Graphics.FromImage(bmp))
        {
            g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
            FontFamily ffm = FontFamily.Families.FirstOrDefault(r=>r.Name.Equals("Arial"));

            using (System.Drawing.Font font = new System.Drawing.Font(ffm, 12.0F,  FontStyle.Regular, GraphicsUnit.Point))
            {
                float ff = font.SizeInPoints;
                f = TextRenderer.MeasureText(g,"Graphics", font, new Size(int.MaxValue, int.MaxValue), TextFormatFlags.NoPadding);
            }
        }

我通过创建此span标记并使用js获取其大小来测量浏览器的大小。

<span style="font-family: Arial; font-size: 12pt;">Graphics</span>

0 个答案:

没有答案