>> Delete No. 1104 article
No. Java 한글 폰트 설정

등록 2001-03-28 12:42:00     조회 5
이름 엘멘카이져    

		이 글은 알짜 6.2에 설치한 j2sdk 1.3.02 판에서 트루타입 한글폰트를
Java 기본 폰트로 인식시키는 과정을 경험한 대로 기술한 것입니다.
 (왜, 트루타입이냐 하면, 우선 보기 좋다는 정신 건강적인 측면도 있지만,
Java 플랫폼의 주요 API 중 하나인, Java 2D는 트루타입과 같은 Vector
형 폰트에서만 사용이 가능합니다.)
 우선 한글이 입출력되는 Swing 프로그램을 작성하는 간단한 방법이 있습니다.
$JAVA_HOME/jre/lib/fonts 위치에 트루타입 한글폰트를 복사한 다음,
프로그램에서 한글 입출력이 필요한 Swing Component의 폰트를 강제
지정하는 방법입니다. (Windows GULIM.TTC을 사용하는 경우입니다.)
 c = new JLabel();
c.setFont(new Font("굴림", ...));
 이렇게 하면, JDK는 X 서버에 등록되지 않은 폰트까지도 검색해서 자바
플랫폼에서 사용하는 메카니즘이 있어서 fonts 위치아래 있는 GULIM.TTC을
인식하기 때문에 위의 setFont() 호출이 유효하게 됩니다.
 그러나 이 방법은 WORA 철학에 어긋나며, 더 중요한 문제는 Java 플랫폼의
논리적 폰트로 한글 폰트를 맵핑하는 과정을 생략했기 때문에 다른 대부분의
WORA 원칙에 충실한 Java 프로그램에서 한글 입출력이 불가능합니다.
 이제부터 제대로 한글 폰트를 Java 플랫폼에 설치하는 과정을 다룹니다.
이 과정은 2단계로 이루어집니다. 즉, 한글 폰트를 X 서버의 시스템 폰트로
등록하는 것이 하나이고, 시스템 폰트를 Java 플랫폼의 논리적 폰트로
맵핑시키는 것이 나머지 하나입니다.
 트루타입 한글 폰트를 X 서버에 등록하는 것에 관해서는 많은 문서가 있는
걸로 압니다. 저도 그러한 문서들을 참조하였습니다. kldp.org 사이트에서
X-window/TrueType 글꼴 부분의 문서들이 주요한 정보 출처였습니다.
 /usr/share/fonts/default/TrueType 위치에 가져다 한글 폰트를
설치하고, fonts.dir을 관련 문서를 참조하여 작성합니다. 설치한 폰트를
X 서버에서 인식시키는 데까지 성공하면 절반의 일이 끝납니다. xfontsel
을 통하여 트루타입 한글 폰트를 볼 수 있으면 됩니다.
 (/usr/X11R6/lib/fonts 아래에 한글폰트를 설치하는 것은 Linux Java
가 폰트를 자동으로 인식하는 메카니즘과 충돌하여 한글 입출력이 제대로
안 될 수도 있으니, 삼가하시기 바랍니다. 그리고 X 서버가 트루타입 폰트를
지원하도록 되어 있는 지 확인하시기 바랍니다. 국내 배포판의 경우는 대부분
패치가 이루어져 있으며, XFree86 버전 4.x 부터는 기본적으로 트루타입
폰트를 지원한다는 군요)
 이제 설치한 한글 폰트를 Java 플랫폼의 논리적 폰트로 맵핑하는 절차입니다.
이 작업은 $JAVA_HOME/jre/lib/font.properties 파일을 편집하여
이루어집니다. (Java 플랫폼이 인식하는 Linux 시스템의 Locale 이 한글로
제대로 잡혀 있어야합니다. java.util.Locale.getDefault() 참조)
 font.properties의 내역을 제대로 작성하기 위한 참조 문서는 JDK에 따라
오는 문서 중, I18N 에 관련된 부분을 참조합니다. 충분하지는 않지만.
 웬지 핵심 부분, 그러니까, fonts.dir과 font.properties 의 작성요령
같은 것이 생략된 것 같아 개운치 않은 글이 되었지만, 그러한 내용은 간단히
정리할 성질의 것이 아니라서 어쩔 수가 없군요. 각개 약진할 수 밖에...
 다만, 제가 지금 설정해서 사용하는 fonts.dir과 font.properties는
제 메일로 요청하시면 답변해 드리도록 노력하겠습니다. 쫑.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved