gpt4 book ai didi

c# - 如何获取使用 'Text figures' 的字体的上升或下降高度

转载 作者:行者123 更新时间:2023-11-30 16:58:54 26 4
gpt4 key购买 nike

我在使用 itextsharp 创建的 PDF 文档中遇到文本数字 ( see Wikipedia) 的问题。

基线和数字最低点(例如 9)之间的距离与字体的正常下行高度不同。

用下面的代码我可以计算字体下行的高度:

var fontSize = 60;
var fontPath = @"CorpusGothic-Condensed.otf";
var font = BaseFont.CreateFont(fontPath, BaseFont.CP1252, BaseFont.EMBEDDED);
var descentHeight = font.GetFontDescriptor(BaseFont.DESCENT, fontSize)

我现在的问题是:
是否有可能获得维基百科页面上显示的带有文本数字的字体中数字的下降高度或上升高度?

最佳答案

字体包含上行和下行的一般值。这是您在自己的代码示例中获得的值(value)。

但是,每个字形也有自己的维度。字母 h 的字形比字母 g 的字形具有更高的上升部分和更低的下降部分。

就在四个小时前,我回答了问题How to calculate the height of an element? (使您的问题重复)。

这是我写的:

如果 bf 是一个 BaseFont 实例,那么您可以使用:

float ascent = bf.getAscentPoint("Some String", 12);
float descent = bf.getDescentPoint("Some String", 12);

当我们使用 12 的字体大小时,这将返回基线以上的高度和基线以下的高度。您可能知道,字体大小表示平均高度。不是实际高度。这只是我们使用的一个数字。

总高度为:

float height = ascent - descent;

请注意,仅提供一个字符串(在您的例子中为“9”)是不够的。您还需要传递字体大小(在我的例子中为 12pt)以获取以磅为单位的上升和下降值。

备注:如果您使用的是 iTextSharp,请将我提到的方法中的 get 替换为 Get

关于c# - 如何获取使用 'Text figures' 的字体的上升或下降高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com