Size of text box doesn't correspond exactly to fontSize
-
,Here's something interesting I found while writing code to generate the dimensions of a canvas based on the amount and size of the text I want to set in a square-ish field on the canvas.
fontFamily = 'kast_4_a' fontStyle = 'top_0' fSize = 1000 test_string = FormattedString() test_string.append('a', fontSize = fSize, font = fontFamily + '-%s' %fontStyle) print(test_string.size())
yields the following:
<NSSize width=692.0 height=1001.0>
I can confirm that DrawBot's size() returns a height of any fontSize + 1.
I was hoping to use the size of the text box to calculate the height of the canvas, but now I have to adjust that it seems. What's happening here?
-
@MauriceMeilleur the size of a text box is influenced by the
lineHeight
too. this produces the expected result:test_string.append('a', fontSize=fSize, lineHeight=fSize, font='%s-%s'%(fontFamily,fontStyle))
cheers!
-
Good to know, thanks. But that means that default linespacing = fontSize + 1?
-
But that means that default linespacing = fontSize + 1?
not really… it depends on the vertical metrics in the font.
here’s a test with other fonts:
from random import choice fontName = choice(installedFonts()) txt = FormattedString() txt.append('a', fontSize=1000, font=fontName) print(fontName) print(textSize(txt)[1])