gantt.zip

레드마인을 Bitnami 버전으로 설치해서 사용 중이다. Windows 기반의 서버에 설치해서 잘 사용 중인데, 애석하게도 Gantt 차트를 열어서 PNG로 내보내기를 하려는데, 한글이 깨져 나온다.

일단 Gantt 차트를 꺼내 보면 한글은 큰 이상 없이 나온다. ( Bitnami 버전의 레드마인 중, 1.1.2-1 버전 이상을 설치하면 무조건 UTF-8 형태로 지원된다. 지금(2012년 10월 23일 기준) 최신 버전은 2.1.2-0 이다. )


내보내기하는데, PDF의 경우에는 문제가 안되지만, PNG일 때 한글이 깨져 나오는 문제가 있다.
가끔 문서에 첨부해야 해서 PNG로 뽑아야 할 때 난감하다.

그래서 이런 저런 글들을 참고했는데, Redmine 사이트 내에서 해당 Issue가 나왔었고, 해당 Issue에 대해서 어떻게 대처하는지가 나왔다.
( http://www.redmine.org/issues/4787 )

레드마인 소스가 있는 위치를 먼저 알아야 한다. Bitnami로 설치했다면, 대개 Program Files 라든가, 기타 설치 시 결정한 경로에 설치가 되어 있는데, 그 위치를 %Bitnami% 라고 한다면...

%Bitnami%\apps\redmine\lib\redmine\helpers

라는 폴더 안에 gantt.rb 라는 파일이 있는데, 그 파일 안을 수정해야 한다.

해당 파일을 열고 아래의 소스가 있는 위치까지 이동한다.

imgl = Magick::ImageList.new
imgl.new_image(subject_width+g_width+1, height)
gc = Magick::Draw.new

# Subjects
gc.stroke('transparent')

그리고

gc = Magick::Draw.new
다음 줄에
gc.font = "C:\\Windows\\Fonts\\malgun.ttf" 
라는 코드를 넣는다.

결론 적으로 다음 코드같이 되어 있어야 한다.

imgl = Magick::ImageList.new
imgl.new_image(subject_width+g_width+1, height)
gc = Magick::Draw.new
gc.font = "C:\\Windows\\Fonts\\malgun.ttf"
		
# Subjects
gc.stroke('transparent')

즉 Draw 안에 Font 경로를 넣어 해당 TTF 폰트 파일을 읽어서 처리하도록 하는 것이다.(만일 맑은고딕이 아닌 굴림체인 경우 Gulim.ttf 라고 넣으면 된다.  )

자체적으로 컴파일 하기 때문에, gantt.rb 파일을 수정한 뒤, 다시 PNG로 내보내기를 해보면, 정상적으로 한글이 출력된 PNG를 받을 수 있다.
( 만일 내부 캐쉬가 있는 경우 새로운 PNG 파일을 안 만들고 기존에 만든 것을 자꾸 뿌려줘서 수정이 안된 것 처럼 느낄 수도 있지만, 웹 브라우저의 다시 읽기나, 완전 다시 읽기 - Ctrl + F5를 누르는 등- 의 재시도를 시도하면 정상적으로 출력되는 것을 확인할 수 있다. )

 일단 Gantt.rb 파일을 첨부하긴 했는데, 가급적 직접 소스를 손대는 것을 추천한다.
그 이유가 현재 필자가 가진 소스의 버전과 실제 적용할 소스의 버전이 틀려 오류가 발생할 수 있기 때문이다.
( 필자의 소스는 BitNami Redmine Stack 1.3.1-1 이다 )

728x90

+ Recent posts

728x90