[PHP] TCPDF 한글폰트 사용하기

PHP/TCPDF 2017. 9. 18. 14:06




참고 : TCPDF 한글 폰트 추가




■ TCPDF 폰트 추가도구 확인



※ 가장먼저 /usr/share/php/tcpdf/tools/ 폴더로 이동해서 tcpdf_addfont.php 파일의 존재 여부를 확인한다.

 [root@admin ~]# cd /usr/share/php/tcpdf/tools/

 [root@admin tools]# ll

 total 12

 -rw-rw-r-- 1 root root 2003 May 13  2014 convert_fonts_examples.txt

 -rwxr-xr-x 1 root root 7449 Aug  6  2013 tcpdf_addfont.php









■ TCPDF에 맑은 고딕 추가하기



01. 리눅스 맑은고딕 설치

 [root@admin ~]# wget https://raw.githubusercontent.com/wangsy/mintoffice/master/public/fonts/MalgunGothic.ttf -O /usr/share/fonts/MalgunGothic.ttf




02. TCPDF에 맑은고딕 추가하기

 [root@admin ~]# cd /usr/share/php/tcpdf/tools/


 [root@admin tools]# ll /usr/share/fonts/MalgunGothic.ttf 

 -rw-r--r-- 1 root root 3997212 Sep  7 09:22 /usr/share/fonts/MalgunGothic.ttf


 [root@admin tools]# tcpdf_addfont.php -i /usr/share/fonts/MalgunGothic.ttf

 

 >>> Converting fonts for TCPDF:

 *** Output dir set to /usr/share/php/tcpdf/fonts/

 +++ OK   : /usr/share/fonts/MalgunGothic.ttf added as malgungothic

 >>> Process successfully completed!


 [root@admin tools]# ll /usr/share/php/tcpdf/fonts/ | grep malgun

 -rw-r--r-- 1 root root   23383 Sep  9 13:21 malgungothic.ctg.z

 -rw-r--r-- 1 root root  150183 Sep  9 13:21 malgungothic.php

 -rw-r--r-- 1 root root 1559511 Sep  9 13:21 malgungothic.z




03. 이제 /usr/share/php/tcpdf/fonts 경로에 접근해 보면 아래와 같이 맑은고딕 폰트가 설치된 것을 확인 할 수 있다.












■ TCPDF에 나눔폰트 추가하기



01. 리눅스 나눔폰트 다운로드

 [root@admin ~]# cd /usr/share/fonts/

 [root@admin fonts]# wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip

 ... (생략)

 Length: 14946146 (14M) [application/zip]

 Saving to: “NanumFont_TTF_ALL.zip”


 100%[=================================================>] 14,946,146  22.5M/s   in 0.6s    


 2015-09-04 16:33:37 (22.5 MB/s) - “NanumFont_TTF_ALL.zip” saved [14946146/14946146]



02. 리눅스 나눔폰트 압축해제

 [root@admin fonts]# unzip NanumFont_TTF_ALL.zip -d NanumFont

 Archive:  NanumFont_TTF_ALL.zip

   inflating: NanumFont/NanumBrush.ttf  

   inflating: NanumFont/NanumGothic.ttf  

   inflating: NanumFont/NanumGothicBold.ttf  

   inflating: NanumFont/NanumGothicExtraBold.ttf  

   inflating: NanumFont/NanumMyeongjo.ttf  

   inflating: NanumFont/NanumMyeongjoBold.ttf  

   inflating: NanumFont/NanumMyeongjoExtraBold.ttf  

   inflating: NanumFont/NanumPen.ttf


 [root@admin fonts]# rm -f NanumFont_TTF_ALL.zip



03. TCPDF에 나눔폰트 추가하기

 [root@admin ~]# cd /usr/share/php/tcpdf/tools/


 [root@admin tools]# ls /usr/share/fonts/NanumFont/*

 /usr/share/fonts/NanumFont/NanumBrush.ttf

 /usr/share/fonts/NanumFont/NanumGothicBold.ttf

 /usr/share/fonts/NanumFont/NanumGothicExtraBold.ttf

 /usr/share/fonts/NanumFont/NanumGothic.ttf

 /usr/share/fonts/NanumFont/NanumMyeongjoBold.ttf

 /usr/share/fonts/NanumFont/NanumMyeongjoExtraBold.ttf

 /usr/share/fonts/NanumFont/NanumMyeongjo.ttf

 /usr/share/fonts/NanumFont/NanumPen.ttf


 [root@admin tools]# ls /usr/share/fonts/NanumFont/* | xargs -I TTF php tcpdf_addfont.php -i TTF


 >>> Converting fonts for TCPDF:

 *** Output dir set to /usr/share/php/tcpdf/fonts/

 +++ OK   : /usr/share/fonts/NanumFont/NanumBrush.ttf added as nanumbrush

 >>> Process successfully completed!

 ... (생략)


 >>> Converting fonts for TCPDF:

 *** Output dir set to /usr/share/php/tcpdf/fonts/

 +++ OK   : /usr/share/fonts/NanumFont/NanumPen.ttf added as nanumpen

 >>> Process successfully completed!


 [root@admin tools]# ll /usr/share/php/tcpdf/fonts/ | grep nanum

 -rw-r--r-- 1 root root   38143 Sep  9 13:21 nanumbrush.ctg.z

 -rw-r--r-- 1 root root  192465 Sep  9 13:21 nanumbrush.php

 -rw-r--r-- 1 root root 1517240 Sep  9 13:21 nanumbrush.z

 -rw-r--r-- 1 root root   38351 Sep  9 13:22 nanumgothicb.ctg.z

 -rw-r--r-- 1 root root  193541 Sep  9 13:22 nanumgothicb.php

 -rw-r--r-- 1 root root 2441869 Sep  9 13:21 nanumgothicb.z

 -rw-r--r-- 1 root root   38351 Sep  9 13:22 nanumgothic.ctg.z

 -rw-r--r-- 1 root root   38351 Sep  9 13:22 nanumgothicextrab.ctg.z

 -rw-r--r-- 1 root root  193557 Sep  9 13:22 nanumgothicextrab.php

 -rw-r--r-- 1 root root 2300377 Sep  9 13:22 nanumgothicextrab.z

 -rw-r--r-- 1 root root  193532 Sep  9 13:22 nanumgothic.php

 -rw-r--r-- 1 root root 2387929 Sep  9 13:22 nanumgothic.z

 -rw-r--r-- 1 root root   23103 Sep  9 13:22 nanummyeongjob.ctg.z

 -rw-r--r-- 1 root root  136475 Sep  9 13:22 nanummyeongjob.php

 -rw-r--r-- 1 root root 1567017 Sep  9 13:22 nanummyeongjob.z

 -rw-r--r-- 1 root root   23103 Sep  9 13:22 nanummyeongjo.ctg.z

 -rw-r--r-- 1 root root   23088 Sep  9 13:22 nanummyeongjoextrab.ctg.z

 -rw-r--r-- 1 root root  136489 Sep  9 13:22 nanummyeongjoextrab.php

 -rw-r--r-- 1 root root 1921071 Sep  9 13:22 nanummyeongjoextrab.z

 -rw-r--r-- 1 root root  136468 Sep  9 13:22 nanummyeongjo.php

 -rw-r--r-- 1 root root 1353175 Sep  9 13:22 nanummyeongjo.z

 -rw-r--r-- 1 root root   38143 Sep  9 13:22 nanumpen.ctg.z

 -rw-r--r-- 1 root root  192460 Sep  9 13:22 nanumpen.php

 -rw-r--r-- 1 root root 1456590 Sep  9 13:22 nanumpen.z



04. 이제 /usr/share/php/tcpdf/fonts 폴더에 접근해보면 나눔폰트가 설치된 것을 확인 할 수 있다.













■ TCPDF로 한글 폰트 사용하기



※ 한글을 사용할때부터 파일의 인코딩을 ANSI로 하였을시 에러가 발생하여 UTF-8로 작업해야 했다.



01. TCPDF로 한글을 출력하기위한 코드는 아래와 같다.

 tcpdf_test_02.php

<?php

require_once "tcpdf/tcpdf_import.php";


$html = "<h1>안녕 TCPDF</h1>";

$html .= "<p style='color:#CC0000;'>TCPDF 라이브러리 한글 예제</p>";

$html .= "<pre>1행 : TCPDF 한글 라이브러리</pre>";

$html .= "<pre>2행 : 세팅성공</pre>";


$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, "UTF-8", false);

$pdf -> SetCreator(PDF_CREATOR);

$pdf -> SetFont("nanumgothic"); 

$pdf -> SetDefaultMonospacedFont("nanumpen");

$pdf -> AddPage();

$pdf -> writeHTMLCell(0, 0, "", "", $html, 0, 1, 0, true, "", true);

$pdf -> Output(getcwd()."/example_test_02.pdf", "F");

?>




02. tcpdf_test_02.php 파일을 웹브라우저로 실행하고나면 아래와 같이 example_test_02.pdf 파일이 생성된 것을 확인 할 수 있다.





03. 파일을 출력하면 한글이 깨지지 않고 출력되는 모습을 확인 할 수 있다.