作者sabreur (无奈)
看板java
标题[工具] Graphics2D 印中文的问题
时间Thu May 17 17:32:25 2012
大家好 最近在玩 Graphics2D
碰到打印中文的问题= =""
输出方法是这样子
Graphics2D g2d = (Graphics2D) g;
g2d.setFont( rowOB.getFont( attrMap ) );
g2d.drawString( string , pX, rowY);
而 rowOB.getFont() 里面是这样拿font 并调整style
AttributeSet attr = attrList.get( attrMap );
int fontType = Font.ROMAN_BASELINE;
int fontSize = StyleConstants.getFontSize(attr);
if( StyleConstants.isBold( attr ) )
fontType |= Font.BOLD;
if( StyleConstants.isItalic( attr ))
fontType |= Font.ITALIC;
font = cFont.deriveFont(fontType,fontSize);
而 cFont 是这样子拿字型档的
File fontFile = new File( "C:\\kaiu.ttf");
if( !fontFile.exists()) throw new Exception("找无字型档");
cFont = Font.createFont(Font.TRUETYPE_FONT, fontFile);
结果 中文字跑不出来...Orz
例如 假如 string = "ABCDEFG测试测试HIJKLMN";
输出大概会是这样 ABCDEFG HIJKLMN
不晓得有没有前辈碰到一样的问题呢 ? 该怎麽解决Orz
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.69.75.21
1F:推 PsMonkey:out.print(cFont.getFontName()) 的结果是? 05/17 17:54
2F:→ sabreur:版主大人 fontName 是标楷体 @@ 05/17 18:05
4F:→ cyberwizard:抱歉 上面那是旧版的作法,新版请参考 05/18 16:51
6F:→ cyberwizard:不能直接读档的说法不太对 应该说没设定好 05/18 17:12