리눅스 자바 한글 폰트 설정하기

프로젝트중에 컨트롤러에서 넘어온 데이터들을 이미지에 써야하는 일이 생겼다. 이래저래 완성은해서 리눅스 서버에 배포하고 나니까 한글이 [][][][][][][] 이렇게 나오는 ????????? 물음표 그 자체의 이슈가 발생하였고 이를 해결하고자 삽질을 시작했다

  1. 톰캣 server.xml 인코딩 확인
  2. 톰켓 setenv.sh 설정
  3. 개발환경 프로젝트 인코딩 확인
  4. 컨트롤러에서 넘어온 데이터 charset 확인

이전 포스팅이었던 PNG 파일에 문자열 삽입하기를 잠깐 살펴보자

Graphics g = image.getGraphics();
g.setColor(Color.BLACK);
g.setFont(new Font("NanumGothic", Font.PLAIN, 30));
g.drawString("토오오트으으너어엄", 100, 400); // 문자열 삽입

Font 객체 인스턴스화할떄 파라미터로 넘겨준 NanumGothic 이게 없어서 문제가 생기는 건가? 부터 시작해서 구글링을 시작했다.

1. OS의 폰트 리스트를 확인한다

  • 전체 폰트 검색 : $ fc-list
  • 한글 폰트만 검색 : $ fc-list :lang=ko

2. 나눔 폰트를 받는다.

  • $ sudo apt-get install fonts-nanum*
    /usr/share/fonts/truetype/nanum 경로에 설치된다.
  • 설치 되었는지 검색 $ fc-list :lang=ko
    /usr/share/fonts/truetype/nanum/NanumSquareRoundB.ttf: 나눔스퀘어라운드,NanumSquareRound,NanumSquareRound Bold,나눔스퀘어라운드 Bold:style=Bold,Regular
    /usr/share/fonts/truetype/nanum/NanumSquareRoundR.ttf: 나눔스퀘어라운드,NanumSquareRound,NanumSqua
    .
    .

3. 서버의 자바 파일을 실행해 폰트리스트를 조회해본다.

나는 이 코드를 작성하고 결과를 확인했을때 한번 더 좌절했다. 원하는 Nanum폰트는 조회되지 않아 ㅜㅜㅜ

public void getFontList(){
  GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
  Font[] fonts = e.getAllFonts();
  for (Font font : fonts) {
    System.out.println(font.getFontName());
  }
}

4. 사용할 폰트 ttf 파일을 JAVA_HOME/jre/lib/fonts 경로에 복사한다

$ cp /usr/share/fonts/truetype/nanum/NanumGothic.ttf /usr/local/java/jdk1.8.0.161/jre/lib/fonts/

5. fontconfig.properties 파일을 변경해준다. (없으면 만든다)

나는 이 과정에서 가장 애먹었는데 개발환경(Window)에 설치된 자바경로의 fontconfig.properties 참조하여 아래와 같이 작성했다.
$ vi /usr/local/java/jdk1.8.0.161/lib/fontconfig.properties

version=1
sequence.allfonts=alphabetic/default,korean,dingbats,symbol
serif.plain.korean=NanumGothic
filename.NanumGothic=/usr/local/java/jdk1.8.0.161/jre/lib/fonts/NanumGothic.ttf

끄읏

참고

 

Linux Java Application에서 한글폰트 사용하는 방법

Java는 JVM에서 실행되도록 설계가 되어 있어서 운영체제에 독립적으로 실행이 가능합니다. 반면, 이로인해 운영체제의 native한 자원을 직접 사용하지 못합니다. 즉, LINUX에 한글폰트가 설치되어 ��

jikime.tistory.com

 

리눅스에 TTF(True Type Font) 를 설정하여 Java에서 사용하기 | 오늘도 커피 3잔?

139月 리눅스에 TTF(True Type Font) 를 설정하여 Java에서 사용하기 먼저 Linux 에 설정하는 방법은 해당 *.ttf 파일을 원하는 디렉토리에 복사한다. 기존에 설정된 폰트디렉토리는 /etc/X11/fs/config 에 설정�

jo.centis1504.net

 

리눅스 폰트 적용 설정 하기

나같은 경우는 Graphics2D로 이미지를 만드는 과정에서 이미지안에 입력한 글짜가 흐리고 불투명하고 삐...

blog.naver.com

sudo yum -y install *nanum* 

자바 폰트  

$JAVA_HOME/jre/lib/fonts
# mkfontscale && mkfontdir
# fc-cache 

+ Recent posts