作者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
推 PsMonkey:out.print(cFont.getFontName()) 的結果是? 05/17 17:54
→ sabreur:版主大人 fontName 是標楷體 @@ 05/17 18:05
→ cyberwizard:抱歉 上面那是舊版的作法,新版請參考 05/18 16:51
→ cyberwizard:不能直接讀檔的說法不太對 應該說沒設定好 05/18 17:12