IText:什么是behinde getAscentPoint(),在使用自定义字体时我会期待什么?

时间:2017-07-05 14:04:47

标签: fonts itext

我使用myfont.otf字体创建一个BaseFont,并从这个basefont中检索我的其他应用程序字体。

当我打电话

myfont.getBaseFont().getAscentPoint("Blabla",myfont.getSize());

我回到了“0”。是什么原因?我已经阅读了thisthat链接。

1 个答案:

答案 0 :(得分:0)

getAscentPoint的实现方式如下:

public float getAscentPoint(String text, float fontSize)
{
    return getAscent(text) * 0.001f * fontSize;
}

getAscent是这样的:

public int getAscent(String text) {
    int max = 0;
    char chars[] = text.toCharArray();
    for (int k = 0; k < chars.length; ++k) {
        int bbox[] = getCharBBox(chars[k]);
        if (bbox != null && bbox[3] > max)
            max = bbox[3];
    }
    return max;
}

如果您取回“0”,因此,这可能是由

引起的
  • fontSize来电中的getAscentPoint参数为0或
  • “Blabla”中没有任何字符的上边界 y 的边界框大于0。

因为我没有“myfont.otf”并且不知道myfont究竟是如何创建的,所以我无法分辨出你的情况。