private String getMeasuredString(Graphics graphics, Font font, int width, String inputString) { int chop = 5; var str = inputString; try { while (true) { SizeF sf = graphics.MeasureString(str, font); if (sf.Width > width * ScannerCommon.PositionSizeController.ScaleFactor) { str = inputString.Substring(0, inputString.Length - chop) + "..."; chop += 5; } else { break; } } } catch { str = inputString; } return str; }