时间:2020-06-22 23:30:28 | 栏目: | 点击:次
在报表、pdf或者excel中输出,我们经常需要对字符串进行宽度的计算,字符串的宽度与字体、字体大小等有关,请看java是怎样获取字符串宽度的。
字体的大小需要用到java.awt.Font javaFont和sun.font.FontDesignMetrics类:
java.awt.Font javaFont = new java.awt.Font("宋体", java.awt.Font.BOLD, 12);
sun.font.FontDesignMetrics fm = sun.font.FontDesignMetrics.getMetrics(javaFont);
System.out.println("fm.getHeight()..."+fm.getHeight());
System.out.println("fm.charWidth('A')..."+fm.charWidth('A'));
System.out.println("fm.charWidth('中')..."+fm.charWidth('中'));
System.out.println("fm.stringWidth(\"宋A\")..."+fm.stringWidth("宋A"));
System.out.println("fm.stringWidth(\"中国\")..."+fm.stringWidth("中国"));
输出看下结果:
fm.getHeight()...15
fm.charWidth('A')...7
fm.charWidth('中')...13
fm.stringWidth("宋A")...20
fm.stringWidth("中国")...26
不同的字体、大小,对中文英文的宽度是不一样的。