java使用第三方字体库的方法,使用第三方ttf/ttc等字体库的方法
有时候我们在程序中,会使用到Java字体,但不是所有的字体系统中都会有,我们就可能会使用外部自定义字体,这样在程序迁移部署中就会少些工作,最近在一个项目中使用到了自定义字体文件,理顺了,记之。
class Loadfont
{
public static Font loadFont(String fontFileName, float fontSize) //第一个参数是外部字体名,第二个是字体大小
{
try
{
File file = new File(fontFileName);
FileInputStream aixing = new FileInputStream(file);
Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, aixing);
Font dynamicFontPt = dynamicFont.deriveFont(fontSize);
aixing.close();
return dynamicFontPt;
}
catch(Exception e)//异常处理
{
e.printStackTrace();
return new java.awt.Font("宋体", Font.PLAIN, 12);
}
}
public static java.awt.Font Font(){
String root=System.getProperty("user.dir");//项目根目录路径
System.out.println(root);
Font font = Loadfont.loadFont(root+"/simsun.ttc", 12f);//调用
return font;//返回字体
}
public static java.awt.Font Font2(){
String root=System.getProperty("user.dir");//项目根目录路径
System.out.println(root);
Font font = Loadfont.loadFont(root+"/simsun.ttc", 12f);
return font;//返回字体
}
}
使用方法:
String root=System.getProperty("user.dir");
String fontname = "Droid Serif";
Font font =Loadfont.loadFont(root+"/xx.ttf", 16f);---->修改成需要的xx.ttf字体库文件。
如果还不行,可以尝试双击ttf文件,安装一下(前题是Windows系统),上面内部类,测试可以,不需要安装ttf文件。
或者直接将ttf文件放到jre/lib/fonts目录下,如果没有目录可以mkdir
在new Font("ddd", xx, xx); ----->ddd 是双击aa.ttf文件字体名,而不是文件名。
另外:
windows的字库地址:C:\Windows\Fonts。字体可以跨平台使用。
原文地址:https://blog.csdn.net/kuenking111/article/details/87919759