Для вычисления размера строки я использую как BaseFont.getWidthPoint()
и Chunk.getWidthPoint()
. Я узнал, что set Style для "BOLD"
не влияет на результат в обеих функциях. Я предполагаю, что "BOLD"
увеличит размер строки. Я что-то делаю неправильно?
String ls = "test length lalalalalala";
Font laFont = new Font(FontFamily.HELVETICA, 12);
laFont.setStyle("BOLD");
BaseFont bf_helv = laFont.getCalculatedBaseFont(false);
float width_helv = bf_helv.getWidthPoint(ls, 12);
System.out.println("------size----------" + width_helv);
Chunk laC = new Chunk(ls);
laC.setFont(laFont);
System.out.println("------size C----------" + laC.getWidthPoint());
В документах и источнике setStyle(string)
принимает одно или несколько из шести возможных значений:
normal, bold, italic, oblique, underline, line-through
Проверка, однако, выполняется с учетом регистра, поэтому вам нужно изменить свой BOLD
на просто bold
laFont.setStyle("BOLD");
должно быть
laFont.setStyle("bold");
Чтобы не иметь проблем с верхним/нижним регистром, вы должны использовать константы, указанные в перечислении FontStyle:
laFont.setStyle(FontStyle.BOLD);