읽어보시면 아시겠지만, Cairo의 문자열 출력 API는 간단한 테스트 용도에 한정되어 있고, 특히 "한 폰트"만 사용할 수 있습니다. (즉 Serif와 같은 폰트셋이 안 된다는 뜻인 듯,.. 첫 매치된 폰트가 사용되는 것 같습니다.) 위 홈페이지의 예제로 시험해 보니, 폰트를 "NanumMyeonjo"로 지정하면 한영문이 다 잘 나오고, "serif"로 두면 영문만 잘 나옵니다.
그런 이유로 해서 페이지에서도 예제 이상의 프로그래밍에서는 Pango의 사용이 필수적임을 명시하고 있습니다. 해서 결론은 더 간단한 방법은 없다고 하겠습니다.
폰트에는 한글이 들어가 있는 게 맞나요? 정확히 어떤
폰트에는 한글이 들어가 있는 게 맞나요? 정확히 어떤 폰트가 사용되고 있는지도 한번 확인해보세요.
Sans체를 사용했습니다.
지금 pango 라이브러리랑 혼합해서 코딩하니 한글이 잘 나오긴 하는데 뭔가 더 간단한 방법은 없을까요?
아래는 지금 수정한 소스코드입니다. 이것보다 더 간단하게 한글 출력하는 코드는 없을까요?
cairo_t *cr;
PangoLayout *layout;
PangoFontDescription *desc;
cr = gdk_cairo_create(widget->window); //위젯은 gtk 윈도우입니다.
layout = pango_cairo_create_layout(cr);
cairo_set_source_rgb(cr, 0.1, 0.1, 0.1);
desc = pango_font_description_from_string("Sans 10");
pango_layout_set_font_description(layout, desc);
pango_font_description_free(desc);
cairo_move_to(cr, 0, 30);
pango_layout_set_text(layout, "안녕하세요?",-1);//한글 출력
pango_cairo_show_layout (cr, layout);
http://cairographics.org/FAQ/
http://cairographics.org/FAQ/#using_pango
읽어보시면 아시겠지만, Cairo의 문자열 출력 API는 간단한 테스트 용도에 한정되어 있고, 특히 "한 폰트"만 사용할 수 있습니다. (즉 Serif와 같은 폰트셋이 안 된다는 뜻인 듯,.. 첫 매치된 폰트가 사용되는 것 같습니다.) 위 홈페이지의 예제로 시험해 보니, 폰트를 "NanumMyeonjo"로 지정하면 한영문이 다 잘 나오고, "serif"로 두면 영문만 잘 나옵니다.
그런 이유로 해서 페이지에서도 예제 이상의 프로그래밍에서는 Pango의 사용이 필수적임을 명시하고 있습니다. 해서 결론은 더 간단한 방법은 없다고 하겠습니다.
답변 감사합니다.
인터넷에 pango 관련 튜토리얼이 없어 cairo만으로 간단하게 만들어 볼까했는데 한계가 있었군요.
댓글 달기