日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java支持wingdings吗,[转]往JRE里添加新字体

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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里添加新字体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。