[PHP] TCPDF로 생성한 PDF 파일 바로 다운받기

PHP/TCPDF 2017. 9. 19. 16:52




참고 : TCPDF 서버에 저장하지 않고 다운로드시키기




01. 작성한 PDF파일을 다운받을 수 있게 변경하는 코드는 아래와 같다.

 tcpdf_test_05.php

<?php

require_once "tcpdf/tcpdf_import.php";


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


$pdf -> SetHeaderData(

 "wicked_logo.jpg"

, PDF_HEADER_LOGO_WIDTH

, "TCPDF 테스트 005"

, "현대마법의 공방 - http://wickedmagic.tistory.com/\nyinglong200@me.com"

, array(0, 64, 255)

, array(0, 64, 128)

);

$pdf -> setFooterData(array(0, 64, 0), array(0, 64, 128));

$pdf -> setHeaderFont(Array("nanumgothic", "", PDF_FONT_SIZE_MAIN));

$pdf -> setFooterFont(Array("nanumgothic", "", PDF_FONT_SIZE_DATA));

$pdf -> SetDefaultMonospacedFont("nanumgothic");

$pdf -> SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

$pdf -> SetHeaderMargin(PDF_MARGIN_HEADER);

$pdf -> SetFooterMargin(PDF_MARGIN_FOOTER);


$pdf -> SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);


$pdf -> setImageScale(PDF_IMAGE_SCALE_RATIO);


if(@file_exists(dirname(__FILE__)."/lang/eng.php")) {

require_once(dirname(__FILE__)."/lang/eng.php");

$pdf -> setLanguageArray($l);

}


$pdf->setFontSubsetting(true);

$pdf -> SetFont("nanumgothic", "", 10, "", true);

$pdf -> AddPage();


$pdf -> setTextShadow(array(

 "enabled" => true

, "depth_w" => 0.2

, "depth_h" => 0.2

, "color" => array(196, 196, 196)

, "opacity" => 1

, "blend_mode" => "Normal"

));


$html .= "<h1>■ TCPDF 다운로드</h1>";

$html .= "<p>TCPDF를 바로 다운받아보겠습니다.</p>";


$pdf -> writeHTML($html, true, false, false, false, "");

        

        // Ouput에서 다운받을 파일명을 지정하고, 세팅값을 D로 설정해주면 된다.

$pdf -> Output("example_test_05.pdf", "D");


?>






02. 이제 해당 코드를 웹 브라우저를 통해 호출하면 바로 *.pdf 파일을 다운받을지 여부를 물을 것이다. 다운받자.






03. 다운받은 PDF 파일을 오픈하면 아래와 작성한 내용이 그대로 적혀 있는것을 확인 할 수 있다.







[PHP] TCPDF에서 TABLE 출력하기

PHP/TCPDF 2017. 9. 19. 15:50





■ TCPDF에서 TABLE 출력하기


TCPDF 에서 테이블을 출력한다면 아래와 같이 출력이 가능하다.


# 소스코드

 tcpdf_test_04-1.php

<?php

require_once "tcpdf/tcpdf_import.php";


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


$pdf -> SetHeaderData(

 "wicked_logo.jpg"

, PDF_HEADER_LOGO_WIDTH

, "TCPDF 테스트 004-1"

, "현대마법의 공방 - http://wickedmagic.tistory.com/\nyinglong200@me.com"

, array(0, 64, 255)

, array(0, 64, 128)

);

$pdf -> setFooterData(array(0, 64, 0), array(0, 64, 128));


$pdf -> setHeaderFont(Array("nanumgothic", "", PDF_FONT_SIZE_MAIN));

$pdf -> setFooterFont(Array("nanumgothic", "", PDF_FONT_SIZE_DATA));


$pdf -> SetDefaultMonospacedFont("nanumgothic");


$pdf -> SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

$pdf -> SetHeaderMargin(PDF_MARGIN_HEADER);

$pdf -> SetFooterMargin(PDF_MARGIN_FOOTER);


$pdf -> SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);


$pdf -> setImageScale(PDF_IMAGE_SCALE_RATIO);


if(@file_exists(dirname(__FILE__)."/lang/eng.php")) {

require_once(dirname(__FILE__)."/lang/eng.php");

$pdf -> setLanguageArray($l);

}


$pdf -> SetFont("nanumgothic", "", 10, "", true);


$pdf -> AddPage();


$pdf -> setTextShadow(array(

 "enabled" => true

, "depth_w" => 0.2

, "depth_h" => 0.2

, "color" => array(196, 196, 196)

, "opacity" => 1

, "blend_mode" => "Normal"

));


// -----------------------------------------------------------------------------


$html = "<h1>■ 걸그룹</h1>";

$pdf -> writeHTML($html, true, false, false, false, "");


// -----------------------------------------------------------------------------


$tbl

<<<EOD

<table width="90%" border="1" align="center">

<tr><td>트와이스</td><td>나연</td></tr>

<tr><td>트와이스</td><td>정연</td></tr>

<tr><td>트와이스</td><td>모모</td></tr>

<tr><td>트와이스</td><td>사나</td></tr>

<tr><td>트와이스</td><td>지효</td></tr>

<tr><td>트와이스</td><td>미나</td></tr>

<tr><td>트와이스</td><td>다현</td></tr>

<tr><td>트와이스</td><td>채영</td></tr>

<tr><td>트와이스</td><td>쯔위</td></tr>

<tr><td>레드벨벳</td><td>아이린</td></tr>

<tr><td>레드벨벳</td><td>슬기</td></tr>

<tr><td>레드벨벳</td><td>웬디</td></tr>

<tr><td>레드벨벳</td><td>조이</td></tr>

<tr><td>레드벨벳</td><td>예리</td></tr>

<tr><td>러블리즈</td><td>베이비소울</td></tr>

<tr><td>러블리즈</td><td>유지애</td></tr>

<tr><td>러블리즈</td><td>서지수</td></tr>

<tr><td>러블리즈</td><td>이미주</td></tr>

<tr><td>러블리즈</td><td>Kei</td></tr>

<tr><td>러블리즈</td><td>JIN</td></tr>

<tr><td>러블리즈</td><td>류수정</td></tr>

<tr><td>러블리즈</td><td>정예인</td></tr>

<tr><td>여자친구</td><td>소원</td></tr>

<tr><td>여자친구</td><td>예린</td></tr>

<tr><td>여자친구</td><td>은하</td></tr>

<tr><td>여자친구</td><td>유주</td></tr>

<tr><td>여자친구</td><td>신비</td></tr>

<tr><td>여자친구</td><td>엄지</td></tr>

<tr><td>블랙핑크</td><td>지수</td></tr>

<tr><td>블랙핑크</td><td>제니</td></tr>

<tr><td>블랙핑크</td><td>로제</td></tr>

<tr><td>블랙핑크</td><td>리사</td></tr>

</table>

EOD;


$pdf -> writeHTML($tbl, true, false, false, false, "");


// -----------------------------------------------------------------------------


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

?>





# 출력결과





그럼 위와같이 출력이 되는 모습을 확인 할 수 있다.


그렇지만 HereDoc(EOD) 같은 것을 사용한는것을 그렇게 좋아하지 않기에.


직접 변수에 값을 넣고 출력한다면



 tcpdf_test_04-2.php

<?php

require_once "tcpdf/tcpdf_import.php";


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


// 상단 헤더 변경

$pdf -> SetHeaderData(

 "wicked_logo.jpg"

, PDF_HEADER_LOGO_WIDTH

, "TCPDF 테스트 004-2"

, "현대마법의 공방 - http://wickedmagic.tistory.com/\nyinglong200@me.com"

, array(0, 64, 255)

, array(0, 64, 128)

);

$pdf -> setFooterData(array(0, 64, 0), array(0, 64, 128));


// 헤더, 푸터 폰트 한글로 변경

$pdf -> setHeaderFont(Array("nanumgothic", "", PDF_FONT_SIZE_MAIN));

$pdf -> setFooterFont(Array("nanumgothic", "", PDF_FONT_SIZE_DATA));


$pdf -> SetDefaultMonospacedFont("nanumgothic");


$pdf -> SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

$pdf -> SetHeaderMargin(PDF_MARGIN_HEADER);

$pdf -> SetFooterMargin(PDF_MARGIN_FOOTER);


$pdf -> SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);


$pdf -> setImageScale(PDF_IMAGE_SCALE_RATIO);


if(@file_exists(dirname(__FILE__)."/lang/eng.php")) {

require_once(dirname(__FILE__)."/lang/eng.php");

$pdf -> setLanguageArray($l);

}


$pdf -> SetFont("nanumgothic", "", 10, "", true);


$pdf -> AddPage();


$pdf -> setTextShadow(array(

 "enabled" => true

, "depth_w" => 0.2

, "depth_h" => 0.2

, "color" => array(196, 196, 196)

, "opacity" => 1

, "blend_mode" => "Normal"

));


$html = "<h1>■ 걸그룹</h1>";

$html .= "<table width=\"90%\" border=\"1\" align=\"center\">";

$html .= "<tr><td>트와이스</td><td>나연</td></tr>";

$html .= "<tr><td>트와이스</td><td>정연</td></tr>";

$html .= "<tr><td>트와이스</td><td>모모</td></tr>";

$html .= "<tr><td>트와이스</td><td>사나</td></tr>";

$html .= "<tr><td>트와이스</td><td>지효</td></tr>";

$html .= "<tr><td>트와이스</td><td>미나</td></tr>";

$html .= "<tr><td>트와이스</td><td>다현</td></tr>";

$html .= "<tr><td>트와이스</td><td>채영</td></tr>";

$html .= "<tr><td>트와이스</td><td>쯔위</td></tr>";

$html .= "<tr><td>레드벨벳</td><td>아이린</td></tr>";

$html .= "<tr><td>레드벨벳</td><td>슬기</td></tr>";

$html .= "<tr><td>레드벨벳</td><td>웬디</td></tr>";

$html .= "<tr><td>레드벨벳</td><td>조이</td></tr>";

$html .= "<tr><td>레드벨벳</td><td>예리</td></tr>";

$html .= "<tr><td>러블리즈</td><td>베이비소울</td></tr>";

$html .= "<tr><td>러블리즈</td><td>유지애</td></tr>";

$html .= "<tr><td>러블리즈</td><td>서지수</td></tr>";

$html .= "<tr><td>러블리즈</td><td>이미주</td></tr>";

$html .= "<tr><td>러블리즈</td><td>Kei</td></tr>";

$html .= "<tr><td>러블리즈</td><td>JIN</td></tr>";

$html .= "<tr><td>러블리즈</td><td>류수정</td></tr>";

$html .= "<tr><td>러블리즈</td><td>정예인</td></tr>";

$html .= "<tr><td>여자친구</td><td>소원</td></tr>";

$html .= "<tr><td>여자친구</td><td>예린</td></tr>";

$html .= "<tr><td>여자친구</td><td>은하</td></tr>";

$html .= "<tr><td>여자친구</td><td>유주</td></tr>";

$html .= "<tr><td>여자친구</td><td>신비</td></tr>";

$html .= "<tr><td>여자친구</td><td>엄지</td></tr>";

$html .= "<tr><td>블랙핑크</td><td>지수</td></tr>";

$html .= "<tr><td>블랙핑크</td><td>제니</td></tr>";

$html .= "<tr><td>블랙핑크</td><td>로제</td></tr>";

$html .= "<tr><td>블랙핑크</td><td>리사</td></tr>";

$html .= "</table>";


$pdf -> writeHTML($html, true, false, false, false, "");


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

?>



위와같은 형식으로 변경해 주면 되는데.


한가지 주의사항은 따옴표로 감싸는 것이다.







필자는 기본적으로 1번과 같이 큰 따옴표 안에 작은 따옴표를 넣는 방식으로 코딩을 많이 하는데


위와 같이 큰 따옴표안에 작은 따옴표를 넣는 방식은 에러가 발생하게 되어 결국 3번과 같은 형태로 코딩을 하게 되었다.


HereDoc(EOD ~ )와 같은 방식을 좋아하지 않는 유저라면  처음부터 작은 따옴표 안에 큰 따온를 먼저 쓸것이다.




[PHP] TCPDF 상단 헤더 변경하기

PHP/TCPDF 2017. 9. 19. 11:44




참고 : https://tcpdf.org/examples/example_001




기본적으로 TCPDF 기본 샘플 문서를 보면 상단에 아래와같은  TCPDF  로고가 나오는 것을 확인 할 수 있다.



이제 이 상단헤더의 로고와 내용을 변경하여 우리가 원하는 형태로 변경해서 사용해 보자.





01. 먼저  TCPDF 와 교체할 로고 이미지 파일을 /usr/share/php/tcpdf/examples/images 경로에 업로드 한다.





02. 이제 아래 코드를 작성하고 웹 브라우저로 실행시킨다.

 tcpdf_test_03.php

<?php

require_once "tcpdf/tcpdf_import.php";


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


// 상단 헤더 변경

$pdf -> SetHeaderData(

 "wicked_logo.jpg"                  // 위에서 올린 이미지 파일명을 기입한다.

, PDF_HEADER_LOGO_WIDTH      // 등록하지 않았다면 ""(빈값)으로 표기하자.

, "TCPDF 테스트 003"

, "현대마법의 공방 - http://wickedmagic.tistory.com/\nyinglong200@me.com"

, array(0, 64, 255)

, array(0, 64, 128)

);

$pdf -> setFooterData(array(0, 64, 0), array(0, 64, 128));

// 헤더, 푸터 폰트 한글로 변경

$pdf -> setHeaderFont(Array("nanumgothic", "", PDF_FONT_SIZE_MAIN));

$pdf -> setFooterFont(Array("nanumgothic", "", PDF_FONT_SIZE_DATA));

$pdf -> SetDefaultMonospacedFont("nanumgothic");

$pdf -> SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

$pdf -> SetHeaderMargin(PDF_MARGIN_HEADER);

$pdf -> SetFooterMargin(PDF_MARGIN_FOOTER);


$pdf -> SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);


$pdf -> setImageScale(PDF_IMAGE_SCALE_RATIO);


if(@file_exists(dirname(__FILE__)."/lang/eng.php")) {

require_once(dirname(__FILE__)."/lang/eng.php");

$pdf -> setLanguageArray($l);

}


$pdf->setFontSubsetting(true);

// 기본 폰트 및 글자 사이즈 변경

$pdf -> SetFont("nanumgothic", "", 10, "", true);

$pdf -> AddPage();


$pdf -> setTextShadow(array(

 "enabled" => true

, "depth_w" => 0.2

, "depth_h" => 0.2

, "color" => array(196, 196, 196)

, "opacity" => 1

, "blend_mode" => "Normal"

));


// 출력내용

$html = "<h1>■ TCPDF 헤더 변경하기</h1>";

$html .= "<p>TCPDF 헤더 디자인을 변경해 보았습니다.</p>";



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


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


?>






03. 출력결과는 아래와 같이 상단 헤더 부분이 변경된 것을 확인 할 수 있다.







[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. 파일을 출력하면 한글이 깨지지 않고 출력되는 모습을 확인 할 수 있다.







[PHP] TCPDF 라이브러리 설치하기

PHP/TCPDF 2017. 9. 18. 11:51




참조 : 리눅스 TCPDF 설치




01. 웹 브라우저에서 https://sourceforge.net/projects/tcpdf/files/ 에 접속하여 TCPDF를 다운받는다.







02. 다운받은 tcpdf_버전.zip 파일을 FTP를 통해  /usr/share/php 경로에 업로드 한다.








03. 터미널을 통해 /usr/share/php 경로에 접근하여 tcpdf_버전.zip 파일의 압축을 해제한다.


 [root@admin php]# unzip tcpdf_버전.zip







04. 압축이 잘 해제 되었는지 확인해 보자.

 [root@admin php]# ll | grep tcpdf

 drwxrwxr-x  7 root root     4096 Aug  2 21:21 tcpdf

 -rw-r--r--  1 root root 16728716 Sep  9 13:14 tcpdf_6_2_11.zip






05. 이제 아래 코드를 사용하여 *.pdf 파일이 잘생성되는지 테스트 하여 보자.

 tcpdf_test_01.php

<?php

require_once "tcpdf/tcpdf_import.php";


$html = "<h1>Hello TCPDF</h1>";

$html .= "<i>This is the first example of TCPDF library.</i>";

$html .= "<p style='color:#CC0000;'>End of document</p>";


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

$pdf -> SetCreator(PDF_CREATOR);

$pdf -> AddPage();

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

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

?>






06. 이제 example_test_01.pdf 파일을 오픈하여 정상적으로 생성되었는지 확인하여 보자.