最近在做一个需求,在一张图片上,用JAVA程序生成一些文字上去。需要使用“微软雅黑”的字体,发现linux机器上没有。
于是稍微网上搜索了下,解决掉了
首先,看自己的系统平台支持哪些字体的 JAVA 代码:
import java.awt.GraphicsEnvironment;
import java.io.File;
import java.net.URLEncoder;
public class hello{
public static void main(String args[]){
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] allFonts = ge.getAllFonts();
for (int i = 0; i < allFonts.length; i++) {
Font f = allFonts[i].deriveFont(10.0f);
System.out.println(f.getFontName());
}
}
}
这段代码放到服务器上执行下就可以了
然后 讲述安装部分:
在windows机器上找到字体库,比方说windowsXP 在C:/windows/fonts/下面
我找到
把这两个文件上传到linux 服务器上去:
比方说我建了这么个目录:
/usr/share/fonts/truetype/yahei/
然后将这2个文件扔进去了。
然后到这个目录下执行3个命令:
执行 mkfontscale
生成了fonts.scale文件
执行 mkfontdir
生成了fonts.dir文件
chkfontpath --add /usr/share/fonts/truetype/yahei/
就搞定了,最后再运行下 java hello 就可以看到字体多了个 Microsoft yahei ,程序当中就用这个英文名作为字体名就可以了
Font font = new Font("Microsoft YaHei", Font.LAYOUT_LEFT_TO_RIGHT, 20);