java支持wingdings吗,[转]往JRE里添加新字体
Adding Fonts to the Java Runtime
要加一種亞洲字體進JRE,請按以下步驟進行:
1.裝入字體
首先,你必須裝載中文、日文、韓文或傳統的中文字體(楷書、宋體等)到你的系統里面
2.復制字體進font.properties
裝好了字體后,復制你感興趣字體的descriptio到font.properties,最簡捷的方法是把
font.properties.直接改名為font.properties
例如:要使用中文字體,你可以復制或者改名font.properties.zh為font.properties.
現行的WIN32 JDK提供如下font properties 文件
./lib/font.properties
./lib/font.properties.ja
./lib/font.properties.ko
./lib/font.properties.zh
./lib/font.properties.zh_TW
并且你可以在JRE里使用多于一種的亞洲字體,所必須做的就是編輯font.properties
文件。
例如你要加三種SERIF字體;
serif.0=Times New Roman,ANSI_CHARSET
serif.1=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
serif.2=Symbol,SYMBOL_CHARSET,NEED_CONVERTED
. = , attributes
后面有三個參數,如Times New Roman、WingDings就是字體名
第二個參數(SYMBOL_CHARSET)是相應字符集的處理接口
第三個參數是表明相應字符集不能直接同過UNICODE編碼處理,需要與UNICODE間的轉換器
通過以下語句設不同FONTS的轉換器
fontcharset.serif.1=sun.awt.windows.CharToByteWingDings
fontcharset.serif.2=sun.awt.CharToByteSymbol
用戶也可以定制自己的字體、字符集與自定義的UNICODE轉換器
例如說你想增加你自己定制的字體到JAVA的serif???? 系列字體里去,
假設你的字體共有256個,從0到0Xff.正對應于UNICODE里的OXE000-0XEOFF。
首先你要設計你的轉換類
package mypkg.converter;
import sun.io.CharToByteISO8859_1;
import sun.io.CharToByteConverter;
import sun.io.ConversionBufferFullException;
public class CharToByteMyFont extends sun.io.CharToByteISO8859_1 {
/*
* This method indicates the range this font covers.
*/
public boolean canConvert(char ch) {
if (ch >= 0xe000 && ch <= 0xe0ff) {
return true;
}
return false;
}
/*
* This method converts the unicode to this font index.
*/
public int convert(char[] input, int inStart, int inEnd,
byte[] output, int outStart, int outEnd)
throws ConversionBufferFullException {
int outIndex = outStart;
for (int i = inStart; i < inEnd; i++) {
char ch = input[i];
if (ch >= 0xe000 && ch <= 0xe0ff) {
if (outIndex >= outEnd)
throw new ConversionBufferFullException();
output[outIndex++] = (byte)(ch – 0xe000);
}
}
return outIndex – outStart;
}
第二步,加你自己的字體和轉換器進Properties文件
你先要增加你的字體的名子進文件里,
如
serif.3=
然后定義相應的converter
fontcharset.serif.3=mypkg.converter.CharToByteMyfont
為了確定JRE能夠找到你的轉換器,你的application classpath 必須包含轉換器的路徑
以上是我看了sun里的相關文章后覺得很不錯而粗略整理出來的,目的只在于把相關內容大概介紹一下,請不要見笑,最好參考英文原文
http://java.sun.com/products/jdk/1.1/docs/guide/intl/fontprop.html
或到http://java.sun.com/products/jdk/1.1/docs/guide/intl/index.html看更多的Internationalization相關資料以及samples
本人正在做多國語的網版詞典,所以有在找相關資料,這是我看到的比較有用的敘述JAVA中字符集處理的文章,如果各位看到更好的java對unicode支持的資料請告知我,謝謝
Read: 722
Like this:
Like Loading...
總結
以上是生活随笔為你收集整理的java支持wingdings吗,[转]往JRE里添加新字体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015年,移动互联网进入拼“活跃度”时
- 下一篇: 不注册Nvidia账号下载cuDNN的方