jpgraph 1.20.4 에서 한글 폰트 사용

2011.07.28 10:02

Myip 심걸 조회 수:14552

출처: phpschool 노이믹




RedHat 9 기준입니다.

1. 한글 폰트가 있는지 확인 (*.ttf 파일)

$ ls /usr/share/fonts/ko/TrueType/
batang.ttf fonts.cache-1 fonts.scale hline.ttf hmfmpyun.ttf hmkmmag.ttf
dotum.ttf fonts.dir gulim.ttf hmfmold.ttf hmkmami.ttf hmkmrhd.ttf

여기서는 hmfmpyun.ttf hmkmmag.ttf hmfmold.ttf hmkmami.ttf hmkmrhd.ttf 는 윈도우에서 복사해서 넣음
2. src/gd_image.inc.php 수정
// Japanese font
DEFINE("FF_MINCHO",40);
DEFINE("FF_PMINCHO",41);
DEFINE("FF_GOTHIC",42);
DEFINE("FF_PGOTHIC",43);

// Korean font
DEFINE("FF_GULIM",50);
DEFINE("FF_DOTUM",51);
DEFINE("FF_BATANG",52);
DEFINE("FF_HLINE",53);
DEFINE("FF_OLD",54);
DEFINE("FF_PYUNJI",55);
DEFINE("FF_AMI",56);
DEFINE("FF_MAGIC",57);
DEFINE("FF_RHD",58);

// Limits for TTF fonts
DEFINE('_FF_FIRST',10);
DEFINE('_FF_LAST',43);
DEFINE('_FF_LAST',58);

3. src/jpg-config.php 수정
// Japanese TrueType font used with FF_MINCHO, FF_PMINCHO, FF_GOTHIC, FF_PGOTHIC
DEFINE('MINCHO_TTF_FONT','ipam.ttf');
DEFINE('PMINCHO_TTF_FONT','ipamp.ttf');
DEFINE('GOTHIC_TTF_FONT','ipag.ttf');
DEFINE('PGOTHIC_TTF_FONT','ipagp.ttf');

// Assume that Japanese text have been entered in EUC-JP encoding.
// If this define is true then conversion from EUC-JP to UTF8 is done
// automatically in the library using the mbstring module in PHP.
DEFINE('ASSUME_EUCJP_ENCODING',false);

// Korean TrueType font used with FF_GULIM, FF_DOTUM, FF_BATANG, FF_HLINE
DEFINE('GULIM_TTF_FONT','gulim.ttf');
DEFINE('DOTUM_TTF_FONT','dotum.ttf');
DEFINE('BATANG_TTF_FONT','batang.ttf');
DEFINE('HLINE_TTF_FONT','hline.ttf');
DEFINE('OLD_TTF_FONT','hmfmold.ttf');
DEFINE('PYUNJI_TTF_FONT','hmfmpyun.ttf');
DEFINE('AMI_TTF_FONT','hmkmami.ttf');
DEFINE('MAGIC_TTF_FONT','hmkmmag.ttf');
DEFINE('RHD_TTF_FONT','hmkmrhd.ttf');

// Assume that Korean text have been entered in EUC-KR encoding.
// If this define is true then conversion from EUC-KR to UTF8 is done
// automatically in the library using the mbstring module in PHP.
DEFINE('ASSUME_EUCKR_ENCODING',true);

//------------------------------------------------------------------------
// Various JpGraph Settings. Adjust accordingly to your
// preferences. Note that cache functionality is turned off by
// default (Enable by setting USE_CACHE to true)
//------------------------------------------------------------------------

// DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
// DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
// DEFINE("MBTTF_DIR","/usr/share/fonts/ja/TrueType/");
DEFINE("KOTTF_DIR","/usr/share/fonts/ko/TrueType/");

4. src/jpgraph.php 수정
elseif( ASSUME_EUCJP_ENCODING &&
($aFF == FF_MINCHO || $aFF == FF_GOTHIC || $aFF == FF_PMINCHO || $aFF == FF_PGOTHIC) ) {
if( !function_exists('mb_convert_encoding') ) {
JpGraphError::RaiseL(25127);
}
return mb_convert_encoding($aTxt, 'UTF-8','EUC-JP');
}
elseif( ASSUME_EUCKR_ENCODING &&
($aFF == FF_GULIM || $aFF == FF_DOTUM || $aFF == FF_BATANG || $aFF == FF_HLINE || $aFF == FF_OLD || $aFF == FF_PYUNJI || $aFF == FF_AMI || $aFF == FF_MAGIC || $aFF == FF_RHD) ) {
if( !function_exists('mb_convert_encoding') ) {
JpGraphError::RaiseL(25127);
}
return mb_convert_encoding($aTxt, 'UTF-8','EUC-KR');
}

else
return $aTxt;
}


FF_MINCHO => array(FS_NORMAL=>MINCHO_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_PMINCHO => array(FS_NORMAL=>PMINCHO_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_GOTHIC => array(FS_NORMAL=>GOTHIC_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_PGOTHIC => array(FS_NORMAL=>PGOTHIC_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_MINCHO => array(FS_NORMAL=>PMINCHO_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_GULIM => array(FS_NORMAL=>GULIM_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>''
FF_BATANG => array(FS_NORMAL=>BATANG_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_DOTUM => array(FS_NORMAL=>DOTUM_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_HLINE => array(FS_NORMAL=>HLINE_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_OLD => array(FS_NORMAL=>OLD_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_PYUNJI => array(FS_NORMAL=>PYUNJI_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_AMI => array(FS_NORMAL=>AMI_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_MAGIC => array(FS_NORMAL=>MAGIC_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_RHD => array(FS_NORMAL=>RHD_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' )

);
}

if( !$f ) {
JpGraphError::RaiseL(25048,$fam);//("Unknown font style specification [$fam].");
}

if ($family >= FF_GULIM && $family <= FF_RHD) {
$f = KOTTF_DIR.$f;
} else
if ($family >= FF_MINCHO && $family <= FF_PGOTHIC) {
$f = MBTTF_DIR.$f;
} else {
$f = TTF_DIR.$f;
}

elseif( ASSUME_EUCJP_ENCODING &&
($aFF == FF_MINCHO || $aFF == FF_GOTHIC || $aFF == FF_PMINCHO || $aFF == FF_PGOTHIC) ) {
if( !function_exists('mb_convert_encoding') ) {
JpGraphError::RaiseL(25127);
}
return mb_convert_encoding($aTxt, 'UTF-8','EUC-JP');
}
elseif( ASSUME_EUCKR_ENCODING &&
($aFF == FF_GULIM || $aFF == FF_DOTUM || $aFF == FF_BATANG || $aFF == FF_HLINE || $aFF == FF_OLD || $aFF == FF_PYUNJI || $aFF == FF_AMI || $aFF == FF_MAGIC || $aFF == FF_RHD) ) {
if( !function_exists('mb_convert_encoding') ) {
JpGraphError::RaiseL(25127);
}
return mb_convert_encoding($aTxt, 'UTF-8','EUC-KR');
}

else
return $aTxt;
}
번호 제목 글쓴이 날짜 조회 수
180 [Vmware Vsphere ]centos 安装方法 file MYIP박광춘 2011.10.18 12929
179 원격프로그램 설명 2 file 이건 2011.10.14 12758
178 원격프로그램 설명1 [5] file 이건 2011.10.14 12897
177 Zimbra Desktop 다운로드 및 설치 [28] file MYIP박광춘 2011.09.22 20446
176 안드로이드(android) wmware zimbra 기본강좌 [678] file 이건 2011.08.12 105858
175 <defo 바이러스 위해성.>대부분 pc방에 감염 많이 감염됨 onkeyghost로도 복구 안됨 [34] Myip 심걸 2011.08.11 18776
174 [하이퍼바이저 호스팅] XenServer - CentOS 64bit버전 텍스트모드(TEXT mode) 설치 동영상강좌 [62] file 이건 2011.07.29 21756
173 [jQuery] 간단한 텍스트 스크롤 [86] Myip 심걸 2011.07.28 17174
172 비트 연산 클래스 Bit 0.5.1 [9] Myip 심걸 2011.07.28 13786
171 js_tree_menu 간단한 트리구조 메뉴를 만든다 [31] Myip 심걸 2011.07.28 15391
170 js_input <input>,<textarea>,<submit>,<select> 등을 제어 Myip 심걸 2011.07.28 16156
169 DBMS 별 자동증가값 처리방법 [4] Myip 심걸 2011.07.28 15947
168 퐝당한 Firefox 버그 Myip 심걸 2011.07.28 14300
167 JavaScript에서 클래스를 사용할 때의 생성자 Myip 심걸 2011.07.28 12791
166 JavaScript 타이머 동작방식 Myip 심걸 2011.07.28 18515
165 JavaScript 코딩팁 Myip 심걸 2011.07.28 13781
164 [Flash]Security.allowDomain('*.domain.com') 은 안된다 [7] Myip 심걸 2011.07.28 20204
163 Flex 4 ACE Exam 가이드 Myip 심걸 2011.07.28 12483
162 ImageMagick 을 이용한 PDF 이미지 변환 [1] Myip 심걸 2011.07.28 16423
161 Firefox 속도 개선 방법 Myip 심걸 2011.07.28 12684