使用Style = BOLD在iText中获取String widthPoint

时间:2014-08-11 16:44:01

标签: java pdf-generation itext font-size

我正在使用BaseFont.getWidthPoint()Chunk.getWidthPoint()来计算字符串大小。我发现将样式设置为"BOLD"并不会影响两个函数的结果。我假设"BOLD"会增加String的大小。我做错了吗?

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());

2 个答案:

答案 0 :(得分:1)

每{{}}}和the docs setStyle(string)取六个可能值中的一个或多个:

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

但是,该检查是区分大小写的,因此您需要将BOLD更改为bold

答案 1 :(得分:1)

laFont.setStyle("BOLD");

应该是

laFont.setStyle("bold");

为了避免出现大写/小写的问题,你应该使用FontStyle枚举中提供的常量:

laFont.setStyle(FontStyle.BOLD);