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。字体可以跨平台使用。

原文地址:CSDN


 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

自Java 7u13以来,字体字形无法使用Graphics2D drawString呈现