다운받는곳
http://www.aditus.nu/jpgraph/jpdownload.php
출처:
처음으로 글을 써보내요...
모 대단한건 아니구요... GD를 이용해서 그래프를 그리려고 하는데...
여기서 검색을 해 보니깐.. JpGraph라는 라이브러리가 있더라구요... 그래서... GD 설치하고...
그 라이브러리 설치하고... 등등... 그래프를 그리는 것 까지는 성공했는데...
한글을 쓰기 위해서.. 고생한 끝에... 찾았습니다... 그래서 이렇게 글을 올립니다...
사실... 전 중국어까지 써야하는 고통이 있는데... 한글을 성공했으니깐.. 중국어도 성공하겠죠?? ^^;;;
###################################################################################
본론으로 돌아가면... 일단 한글을 쓰기 위해서는 True Type의 폰트 파일이 있어야 합니다..
전 New Gulim으로 했구요...
jpgraph.php 파일만 수정해 주시면 되는데...
1. 다운 받은 폰트 파일을 특정 폴더에 넣고... 그 폴더를 등록해 주셔야 합니다...
jpgraph.php의 21번째 줄에 보면 폰트 디렉토리 셋팅하는 부분이 있습니다... 그 곳을 바꿔주시구요...
ex) DEFINE("TTF_DIR","XXXXXXXXXX\\JpGraph\\TTF\\");
(XXX는 절대 경로입니다... 상대경로는 안 해봤는데... 누가 한번 해 보세요... ^^)
2. 134번째 줄 뒤에... DEFINE을 해 주시면 됩니다...
ex) DEFINE("FF_GULIM",17);
3. 그리구 폰트 페밀리에 등록해 주시면 됩니다... (1376번째 정도에)
ex)
$this->font_fam=array(
FF_COURIER => TTF_DIR."courier",
FF_VERDANA => TTF_DIR."verdana",
FF_TIMES => TTF_DIR."times",
FF_HANDWRT => TTF_DIR."handwriting",
FF_COMIC => TTF_DIR."comic",
FF_ARIAL => TTF_DIR."arial",
FF_BOOK => TTF_DIR."bookant",
FF_GULIM => TTF_DIR."ngulim"
);
여기까지가 문서에 나와 있는 부분인데...
이렇게 해두 안 되길래.. 제가 직접 소스를 살펴봤습니다...
그래서 발견한 부분이...
3660번째 줄 정도인데...
elseif($this->font_family >= FF_COURIER && $this->font_family <= FF_GULIM) { // TTF font
이 줄의 FF_GULIM이 FF_BOOK으로 되어있습니다... 이 부분에서 걸려서 안 되더라구요..
이곳만 바꿔주시면 됩니다...
그리구 사용하실때...
$graph->title->SetFont(FF_GULIM,FS_NORMAL, 12);
이렇게 하시면 됩니다... FS_NORMAL 부분은 폰트 파일이 여러개 있어야 바꿔줄수 있는거 확인 하시구요... 전 nGulim.ttf 밖에 없어서 FS_NORMAL 밖에 되지 않더라구요...
그럼.. 모두들 수고하세용....
참... 틀린 부분이 있으면 지적해 주시기 바랍니다...
그럼...
------------------------------------------------
jggraph는 http://sf.net 에서 검색하면 첫번째로 나옵니다. 2004.07.05 현재 버전이 1.16 입니다.
버전이 달라지면서 jpgraph.php에서 고칠 부분이 약간 다른데, FF_GULIM 을 정의하는 부분과 FF_GULIM에 대해 폰트파일(예: ngulim.ttf)을 지정하는 부분 이렇게 2곳만 고쳐주면 됩니다.
실제로 그래프를 그리는 파일에서 한글글꼴을 지정해주고, 문자열은 유니코드로 변환해줘야 합니다. 예를 들면
// 타이틀
$graph->title->Set(iconv(\'euc-kr\',\'utf-8\',\'한글제목\'));
$graph->title->SetFont(FF_GULIM,FS_NORMAL,18);
// x축 라벨
$lbl = array(\"김동준\",\"신동엽\",\"김장훈\",\"신성우\",\"하희라\",\"차인표\",\"전지현\");
$graph->xaxis->SetTickLabels($lbl);
$graph->xaxis->SetFont(FF_GULIM,FS_NORMAL,9);
대략 이런 방식입니다.
-----------------------------------------------------
정정 : $lbl 배열에도 실제로 iconv() 변환된 문자열이 들어가야 합니다.
다른 방법으로는 php 문서 자체의 문자셋을 UTF-8로 변환하는 방법이 있습니다. editplus 와 같이 지원하는 에디터에서는 iconv() 를 거칠 필요가 없어 편리할 수도 있습니다.
'PHP관련' 카테고리의 다른 글
php 에서 사용하기 위한 라이브러리 설치 모음 (0) | 2011.10.14 |
---|---|
4,000 바이트 제한이 문제가 되십니까? LOB를 활용하십시오... (0) | 2011.10.14 |
시스템 모니터링 툴」제작기 (0) | 2011.10.14 |
PHP에서 공유메모리 사용하기 (0) | 2011.10.14 |
초급용 php : 게시판의 꽃 페이징을 아십니까? (0) | 2011.10.14 |