Получите String widthPoint в iText с Style = BOLD

1

Для вычисления размера строки я использую как 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());
Теги:
itext
pdf-generation
font-size

2 ответа

1
Лучший ответ

В документах и источнике setStyle(string) принимает одно или несколько из шести возможных значений:

normal, bold, italic, oblique, underline, line-through

Проверка, однако, выполняется с учетом регистра, поэтому вам нужно изменить свой BOLD на просто bold

1
laFont.setStyle("BOLD");

должно быть

laFont.setStyle("bold");

Чтобы не иметь проблем с верхним/нижним регистром, вы должны использовать константы, указанные в перечислении FontStyle:

laFont.setStyle(FontStyle.BOLD);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню