First you need a
PdfFont object. For instance:
PdfFont font = PdfFontFactory.createFont(FontConstants.COURIER, PdfEncodings.WINANSI, false);
Now you can ask the base font for the width of this String in 'normalized 1000 units' (these are units used in 'Glyph space'; see ISO-32000-1 for more info):
float glyphWidth = font.getWidth("WHAT IS THE WIDTH OF THIS STRING?");
Now we can convert these 'normalized 1000 units' to an actual size in points (actually user units, but let's assume that 1 user unit = 1 pt for the sake of simplicity).
For instance: the width of the text "WHAT IS THE WIDTH OF THIS STRING?" when using Courier with size 16pt is:
float width = glyphWidth * 0.001f * 16f;
Your question is different: you want to know the font size for a given
width. That's done like this:
float fontSize = 1000 * width / glyphwidth;
There is also a shortcut to get the width of a
String in points: you can put the string in a
Text and do
text.getWidth() (if you didn't define a font for the
Text, the default font Helvetica with the default font size 12 will be used).
Click How to choose the optimal size for a font? if you want to see how to answer this question in iText 5.