728x90

php 에서 작업을 하다 보면 예전에는 엑셀 다운로드가 많았지만 요즘에는 pdf 로 다운 받기를 원한다.  tcpdf 사이트에서 무료로 다은 받을 수 있지만 한글이 깨지는 오류가 있다. 한글 폰트가 있어야지만 한글이 깨지지 않기 때문에 nanumbarungothicyethangul.php 파일과 폰트를 다운로드 해서 설정해주고 아래와 같이 코딩해주면 html 코드 그대로 pdf 파일로 다운로드가 가능하다. 

 

 

단 css 파일에 정의된 스타일은 사용이 되지 않고 태그 자체에 style 을 하드코딩으로 해주어야 한다. 그래서 테이블 코딩으로 하는것이 레이아웃이 깨지거나 하지 않아서 해당 출력물은 테이블 코딩을 별도로 진행하는 것이 좋다. 

<?php
	require_once "./tcpdf/tcpdf_import.php";  

/**
 * 헤더 변경을 위한 class 상속 후 재 정의
 */
class MYPDF extends TCPDF {

    //Page header
    public function Header() {
        // Logo
        $image_file = K_PATH_IMAGES.'logo_example.jpg';
        $this->Image($image_file, 10, 10, 15, '', 'PNG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font
        $this->SetFont('helvetica', 'B', 15);

        // Title
        //$this->Cell(0, 15, 'www.example.com', 0, false, 'C', 0, '', 0, false, 'M', 'M');
    }
}

$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, "UTF-8", false);
$pdf->SetCreator(PDF_CREATOR);

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

$pdf->SetFont('nanumbarungothicyethangul', '', 12);
$pdf->AddPage();
//$pdf->writeHTMLCell(0, 0, "", "", $html, 0, 1, 0, true, "", true);










include $_SERVER["DOCUMENT_ROOT"]."/include/dbopen.php";
$sql = " select * from dual";

ob_start();
?>

<!doctype html>
<html><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>PDF 다운로드 예제</title>
</head>
<body>

<style type="text/css">
.table th, .table td {
    padding: 10px 16px;
    font-size: 15px;
    border: 1px solid #cccccc;
}	
</style>
				<p style="text-align:center; margin-bottom:50px; font-size:30px;">견적서</p>
 
                <table class="table">
                  <colgroup><col width="10%"><col width="10%"><col width="50%"><col></colgroup>
                  <tr>
                    <th style="padding: 10px 16px; font-size: 15px; border: 1px solid #cccccc;"rowspan="2">확인란</th>
                    <td rowspan="2">
                      <img src="도메인경로부터/img/img_confirm.png" style="width:80px;">
                    </td>                        
                    <td>데이터 내용 </td>
                  </tr>
                </table>
  
            </div>

</body>
</html>
<?php
$pdfData = ob_get_contents();
ob_end_clean();
 

// 테이블을 출력할 때 사용하는 방법
$pdf -> writeHTML($pdfData, true, false, false, false, '');

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

?>
728x90

+ Recent posts