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 this link if you want to see how to answer this question in iText 5.