자바에서는 폰트를 두가지 방식으로 해서 참조합니다.
한 가지는 논리적 폰트를 사용하는 것이고, 둘 째는 실제적인 폰트를 참조하는 것이죠!
논리적 폰트는 5개의 Font Family로써 실제적인 Physical Font와 연결되어 있습니다.
예를 들어 논리적 폰트를 사용하는 경우는 Font cfont = new Font("Dialog", Font.Plan, 12); 사용하는데요. 이 경우는 Font Family중의 하나인 Dialog로서 Physical Font인 Arial.TTF 폰트를 참조하여 사용하게 되는 것입니다. 두번째의 경우는 Font cfont = new Font("Arial", Font.Plan, 12); 이런 식으로 사용하는 것이죠. 둘 모두 같은 Physical Font인 Arial.TTF(True Type)를 사용하는 것이 됩니다.
대부분의 경우는 폰트를 디스플레이 하는데 큰 어려움이 없습니다.
그러나 영어나 한글이 아닌 문자(중국어, 일본어, 아랍어)들을 디스플레이 해야 할 경우는 좀 경우가 다릅니다.
os가 WIndow XP인 경우는 브라우저에서 다양한 유니코드 문자셋들을 디스플레이 하는데 아무런 문제가 없지만, 자바의 경우는 기본적으로 폰트 설정을 바꾸어 주지 않은 경우 문자들이 디스플레이 되지 않습니다.
예를 들어 중국어 문자를 디스플레이 해야만 하는 경우가 발생할 경우에 대해 알아보겠습니다.
자바는 각 나라에 따라 사용하는 기본 폰트 설정이 다릅니다. 이러한 폰트 설정은 /jre/lib/font.properties 파일에 적혀있습니다. 즉, font.properties는 영어권 os에 대한 폰트 설정이며, 한국에서 os를 한국어 바탕으로 설정하여 사용하는 경우, 자바는 기본 폰트 설정 파일로 font.properties.ko를 사용합니다. 따라서 중국어 문자들에 대해서도 디스플레이 하고자 하는 경우 바로 이 폰트 속성 파일을 수정해 주어야 합니다.
물론, 그렇지 않고, 특정 영역의 문자셋(중국어 문자셋)를 디스플레이 할 수 있는 폰트를 직접 설정해 주셔도 됩니다. 예를 들어 Bitstream Cyberbit이라는 폰트가 있는데, 이는 유니코드 문자셋를 표현할 수 있는 폰트입니다. 이 폰트를 직접 Font cfont = new Font("Bitstream Cyberbit", Font.Plan, 12); 식으로 설정하셔도 됩니다. 그러나 이렇게 사용되는 곳마다 일일히 폰트를 설정하는 것은 노가다일 수 있기 때문에 기본 폰트 속성 파일을 수정해 주는 것이 더 편할 수도 있습니다.
폰트 속성 파일을 수정하는 작업은 별 어려움이 없습니다.
예를 들어 font.properties.ko 파일에는 앞에서 얘기한 5개의 Font Family 들이 있습니다.
이들은 논리적 폰트이기 때문에 이들에 대해 중국어 또는 유니코드 폰트를 연결만 시켜주면 됩니다.
다음과 같이 말이죠!
dialog.0=Arial,ANSI_CHARSET
dialog.1=\uad74\ub9bc,HANGEUL_CHARSET
dialog.2=WingDings,SYMBOL_CHARSET
dialog.3=Symbol,SYMBOL_CHARSET
dialog.4=Bitstream Cyberbit //유니코드 폰트
dialog.5=MinLiU //중국어 번체자 폰트(윈도우 XP에서 중국어 번체자 디스플레이에 사용되는 폰트)
dialog.6=SimSun //중국어 간체자 폰트(윈도우 XP에서 중국어 간체자 디스플레이에 사용되는 폰트)
위에 4개는 기본적으로 설정되어 있는 폰트 설정이며, 아래 3개는 새로 추가된 폰트 설정입니다.
또한 부가적으로 특정 영역의 문자셋에 대해, 자신이 만든 폰트를 연결하여 디스플레이 할 수도 있습니다. 물론 약간의 코딩을 해야 하지만요..
폰트 설정이나 디스플레이에 관해 질문이 있으시면, 메일 주시기 바랍니다.
설뫼호 : sulmoiho@naver.com