java引入外部字体_Java中如何自定义字体文件(引用外部字体)?-字体文件

fa01dc62d0fe9a805e8d07b1cc3c517b.png

图源来自网络

有时候我们在程序中,会使用到Java字体,但不是所有的字体系统中都会有,我们就可能会使用外部自定义字体,这样在程序迁移部署中就会少些工作,最近在一个项目中使用到了自定义字体文件,理顺了,记之。package cy.util;

import java.awt.Font;

import java.awt.FontFormatException;

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

public class CyFont {

private Font definedFont = null;

public Font getDefinedFont(int ft,float fs) {

String fontUrl="";

switch (ft) {

case 1:

fontUrl="/opt/hwxk.ttf";//华文行楷

break;

case 2:

fontUrl="/opt/hwkt.ttf";//华文楷体

break;

default:

String fonturllocal="/usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc";

if(!new File(fonturllocal).exists()){

fontUrl="/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc";

}else{

fontUrl=fonturllocal;

}

break;

}

if (definedFont == null) {

InputStream is = null;

BufferedInputStream bis = null;

try {

is =new FileInputStream(new File(fontUrl));

bis = new BufferedInputStream(is);

definedFont = Font.createFont(Font.TRUETYPE_FONT, is);

//设置字体大小,float型

definedFont = definedFont.deriveFont(fs);

} catch (FontFormatException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (null != bis) {

bis.close();

}

if (null != is) {

is.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

return definedFont;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

CyFont cf=new CyFont();

cf.getDefinedFont(1, 50.0);

}

}


版权声明:本文为weixin_32511247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。