private float GetStringWidth(String str)
{
DocumentFont font = gs.font;
char[] chars = str.ToCharArray();
float totalWidth = 0;
for (int i = 0; i < chars.Length; i++) {
float w = font.GetWidth(chars[i]) / 1000.0f;
float wordSpacing = chars[i] == 32 ? gs.wordSpacing : 0f;
totalWidth += (w * gs.fontSize + gs.characterSpacing + wordSpacing) * gs.horizontalScaling;
}
return totalWidth;
}