0
点赞
收藏
分享

微信扫一扫

世界第一!泰山JDK8完美支持TTC字体文件的效果图


  • 首先感谢搜索时给予启发的朋友

在前面博文中有说明。

  • 字体介绍

batang.ttc中,共有4个字体:Batang, BatangChe, Gungsuh, GungsuhChe

  • 渲染效果图

世界第一!泰山JDK8完美支持TTC字体文件的效果图_java

由图中可以看到,4行文字的英文各不相同。

  • 非渲染效果图

世界第一!泰山JDK8完美支持TTC字体文件的效果图_渲染效果_02

  • 测试代码

package taishan;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.io.File;

import sun.font.TrueTypeFont;

@SuppressWarnings("serial")
public class TTCFontFileTestFrame extends TFrame
{
private final static String FONT_DIR = "D:\\test-fonts";
private final static String[] FONT_FILES =
{
//"simsun.ttc",
"batang.ttc",
};

private final static int POS_OFFSET = 100;

private final static char[] TAISHAN = "泰山Office".toCharArray();

private Font[] mTestFonts;

public TTCFontFileTestFrame()
{
try
{
TrueTypeFont ttf = new TrueTypeFont(FONT_DIR+"\\"+FONT_FILES[0]);

mTestFonts = new Font[ttf.getFontCount()];

String[] names = ttf.getFullNames();
for (int i=0; i<names.length; i++)
{
Font font = Font.createFont(Font.TRUETYPE_FONT, new File(FONT_DIR+"\\"+FONT_FILES[0]), names[i]);
font = font.deriveFont(Font.PLAIN, 30);
System.out.println(font.getFamily()+", "+font.getName()+", "+font.getFontName());
mTestFonts[i] = font;
}
}
catch (Exception e)
{
e.printStackTrace();
}

}

private void drawBoldFonts(Graphics2D g)
{
//int xunit = 20;
int yunit = 40;
for (int i=0; i<mTestFonts.length; i++)
{
if (mTestFonts[i] == null)
{
continue;
}

g.setFont(mTestFonts[i]);
int y = POS_OFFSET+i*yunit;
g.drawChars(TAISHAN, 0, TAISHAN.length, POS_OFFSET, y);
}
}

@Override
public void paint(Graphics g)
{
super.paint(g);

Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);

drawBoldFonts(g2d);
}


public static void main(String[] args)
{
TTCFontFileTestFrame frame = new TTCFontFileTestFrame();
frame.startTest();
}

}

举报

相关推荐

0 条评论