如何在javascript中测量字体指标?是否有任何API可用于C#中的GetCellDescent等文本指标?

时间:2016-07-07 09:35:22

标签: javascript c# jquery css web

function calculateSpanHeight(testLine,font){
          var spanElement = $(document.createElement("span")).css("white-space","pre");
          spanElement[0].id = "tempSpan";
          var spanElement = $(spanElement).html(testLine);
          $(spanElement).appendTo("body");
          $(spanElement).css("font",context.font);
          var testWidth = $("#tempSpan").width();
          var height = $("#tempSpan").height();

          var block = $('<div style="display: inline-block; width: 1px; height: 0px;"></div>');

          var div = $('<div></div>');
          div.append(spanElement, block);

          var body = $('body');
          body.append(div);

          var result = {};

          block.css({ verticalAlign: 'baseline' });
          result.ascent = block.offset().top - spanElement.offset().top;

          block.css({ verticalAlign: 'bottom' });
          result.height = block.offset().top - spanElement.offset().top;

          result.descent = result.height - result.ascent;
          $(div).remove();
          return {"testWidth" : testWidth, "height" : height, "spanElement" : spanElement, "ascent" : result.ascent, "descent" : result.descent};
      }

我使用了以下代码。它可以正确地获取文本宽度和高度值。但我需要文本上升和下降值完全是浮点值。请帮助我,并提前致谢。

1 个答案:

答案 0 :(得分:1)

它不是&#34;不可能&#34;,它不是内置于浏览器的可用API中。 JavaScript可以解析字体文件并像任何其他应用程序一样读取度量标准数据。

我知道的两个图书馆......

的OpenType

http://opentype.js.org/font-inspector.html的屏幕截图:

screenshot of opentype font inspection

Font.js

http://bl.ocks.org/eweitnauer/7324712的屏幕截图:

screenshot of font.js font inspection