看板 java 關於我們 聯絡資訊
大家好 最近在玩 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:不能直接讀檔,參考http://ppt.cc/GJ7U 05/18 16:38
cyberwizard:抱歉 上面那是舊版的作法,新版請參考 05/18 16:51
cyberwizard:http://ppt.cc/;7yx 05/18 16:52
cyberwizard:不能直接讀檔的說法不太對 應該說沒設定好 05/18 17:12