Библиотек не подскажу, но есть 2 способа: быстрый(с точки зрения производительности) и простой.
Быстрый: гуглим, какие символы к какой равномерной группе относятся. Их всего несколько. Делаем несколько Map(по числу групп), содержащих символы, относящиеся к нужным группам.
Возможно, такой набор групп уже есть в какой-то библиотеке.
Затем при работе приложения отрисовываем прозрачные div в отдельном слое, содержащие, например, по 10 символов группы (много символов, желательно разных - для уменьшения возможной погрешности при сочетании символов). Измеряем ширину этих div.
В значения map записываем ширину символов каждой группы.
Дальше уже просто вычисляем ширину каждой строки. В таком случае метод будет работать с любыми шрифтами, устройствами и масштабами.
В этом способе будет незначительная погрешность из-за особого построения комбинаций некоторых символов. Скорее всего, погрешность будет в пределах 1 пикселя.
Простой: отрисовывем в невидимом div нужную для измерения ширины строку. Измеряем её ширину. Способ ещё более надёжный, чем первый, но в случае большого числа данных, требующих подобного подсчёта, очень медленный.