我对文本数字有疑问(参见维基百科 http://en.wikipedia.org/wiki/Text_figures)在使用以下命令创建的 PDF 文档中itextsharp
.
基线和数字最低点之间的距离(例如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)
我现在的问题是:
是否有可能获得带有文本数字的字体中数字的下降或上升高度,如维基百科页面上所示?
字体包含上升部分和下降部分的一般值。这是您在自己的代码示例中获得的值。
然而,每个字形也有其自己的尺寸。字母 h 的字形比字母 g 的字形具有更高的上升部分和更低的下降部分。
就在四个小时前,我回答了这个问题如何计算元素的高度? https://stackoverflow.com/questions/24549267/calculate-element-height-itext(使你的问题重复)。
这是我写的:
If bf
is a BaseFont
实例,那么你可以使用:
float ascent = bf.getAscentPoint("Some String", 12);
float descent = bf.getDescentPoint("Some String", 12);
当我们使用 12 的字体大小时,这将返回基线以上的高度和基线以下的高度。您可能知道,字体大小指示平均高度。这不是实际高度。这只是我们合作的一个数字。
总高度将为:
float height = ascent - descent;
请注意,提供字符串(在您的情况下例如“9”)是不够的。您还需要传递字体大小(在我的例子中为 12pt)来获取上升部分和下降部分的点值。
Remark:如果您使用的是 iTextSharp,请替换get
with Get
在我提到的方法中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)