■ 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로 생성한 PDF 파일 바로 다운받기 (0) | 2017.09.19 |
---|---|
[PHP] TCPDF 상단 헤더 변경하기 (0) | 2017.09.19 |
[PHP] TCPDF 한글폰트 사용하기 (0) | 2017.09.18 |
[PHP] TCPDF 라이브러리 설치하기 (0) | 2017.09.18 |