자바에서 시스템에 등록되어 있지 않은 폰트를 사용하려면 어떻게 하면 되나요?
글쓴이: vudghkzm / 작성시간: 수, 2008/11/05 - 2:45오전
java로 만든 프로그램이 있고, 이 프로그램에선 항상 ???.ttf 폰트를 이용해서 문자를 출력하고자 합니다.
그런데 이 폰트는 시스템에 등록되어 있지 않은 폰트 입니다.
즉, fontconfig.properties 파일에 등록되어 있지 않은 폰트입니다.
그래서 프로그램이 로딩될때 혹은 java vm이 로딩될때 해당 폰트의 정보도 함께 로딩해서 사용할 수 있게 하고 싶은데 어떻게 하면 될지 감이 안오네요.
fontconfig.properties를 수정하는 것 이외에는 방법이 없나요?
Forums:
폰트 목록 && 로딩
참고하세요.
1. 폰트목록 받아오기
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = env.getAvailableFontFamilyNames();
System.out.println("Available Fonts:");
for (int i = 0; i < fontNames.length; i++)
System.out.println(" " + fontNames[i]);
2. 폰트 로딩하기
http://forums.java.net/jive/thread.jspa?messageID=253698&tstart=0
윈도우즈 플랫폼의
윈도우즈 플랫폼의 경우
Font font = new Font("굴림",0,12);
처럼 폰트명을 그대로 쓰면 불러올 수 있습니다. 단 Windows/Fonts 안에 복사(또는 설치)되어 있어야 합니다.
(어쩌면 아래의 방법을 써도 되겠습니다)
문제는 웹스타트를 쓰는 클라이언트 애플리케이션인데요, 웹스타트에서는
ClassLoader.getResource().getResource(..) 방식을 써서 jar 안에 포함된 폰트를 접근할 수 있지만
static 함수에서 호출할 수 없더군요. (저의 경우)
ClassLoader는 제가 알기론 세 가지 종류가 있는데 어떤 것이 적절한 것인지 몰라서 안적겠습니다.
--
살고 싶다
--
즐 Tux~
댓글 달기