首先,必須先把字體文件(這里用宋體Simsun.ttf)拷貝到JRE的字體目錄JavaHome/lib/fonts下,可以使用WindowsXP的C:\WINDOWS\Fonts\Simsun.ttf下的字體。
然后編輯字體目錄下的文件fonts.dir,把第一行的數字加1,然后在最后加一行,寫上:
simsun.ttf -tlc-SimSun-medium-r-normal--0-0-0-0-c-0-gbk-0
然后除了fontconfig.properties以外,刪除所有的fontconfig.properties.OS.version.*文件;
如果沒有fontconfig.properties則
#cp fontconfig.OS.Version.properties.src fontconfig.properties? 新建一個。
解釋:之所以刪除那些不必要的文件是引文jre是按照一定順序搜索字體的配置文件的,如果我們只有一個配置文件,顯然就沒有出錯的機會了。(搜索方式在下面)
fontconfig.properties代碼: (這個是SuSE的,只是注釋信息不太一樣,可以通用,但是最好使用和本機操作系統相近的配置文件)這里只配置中文信息
# @(#)linux.fontconfig.SuSE.properties 1.2 03/10/17
#
# Copyright 2003 Sun Microsystems, Inc. All rights reserved.
#
# Version
version=1
# Component Font Mappings
serif.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
serif.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
sansserif.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
monospaced.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialog.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.plain.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.bold.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.italic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
dialoginput.bolditalic.zh-1=-tlc-song-medium-r-normal--0-0-0-0-c-0-gbk-0
# Search Sequences
sequence.allfonts=zh-1
# Exclusion Ranges
# Font File Names
啟動一個含中文的java程序試試(^o^)
<jre1.4><jre1.5>的區別:
simsun.ttf拷貝到以下目錄:
<jre1.5>:$JAVA_HOME/lib/fonts/
<jre1.4>:/usr/share/fonts/truetype/某一個目錄/
X配置文件:
<jre1.5>:不需要修改/etc/X11/XFconfigure-4等文件
<jre1.4>:/etc/X11/XFconfigure-4的FontPath段加上/usr/share/fonts/truetype/某一個目錄/。當然,你完全可以和1.5版本一樣把字體復制到$JAVA_HOME/lib/fonts/,然后在X的配置文件里面加上FontPath $JAVA_HOME/lib/fonts/
注意:以上方法對于AWT在輸出中文時,必須保證文本是在GBK環境下編寫的,由于使用gbk輸出,因此不能用gbk2iso方法進行轉換,如果轉換到iso的話應使用iso2gbk在轉一次。
?
Linux字體配置文件的加載方案。其加載順序為(JavaHome指JRE的根目錄,下同):
JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
其中,OS字段可以是:
Windows: "98", "2000", "Me", "XP", "2003"。
Solaris:空。
Linux: "Sun", "RedHat", "Turbo", "SuSE"。("Fedora"也屬于"RedHat")
而Version字段指該OS的版本號。
在這些配置文件中,僅.properties文件是文本文件。<jre1.5>格式跟<jre1.4.2>版的不同。文件分為幾段,并在每段開始時標明。
我們需要關注的僅有兩段:Component Font Mappings和Search Sequences。
前者指定字體,后者指定要使用的properties的搜索順序。
Sun公司對JRE1.5.0版的中文字體設置的官方說明:
http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html
posted on 2006-06-03 15:55
夢源 閱讀(384)
評論(0) 編輯 收藏