PHP DOMPDF 설치방법 on APM , 리눅스 서버

DOMPDF ( WEB 페이지 -> PDF 파일 ) 프로그램 추가 for PHP

해당 프로그램 이전에 TCPDF , FPDF 를 서버에 설치해서 한글 과 이미지 웹페이지를
PDF 로 만들어 봤지만 두가지모두 최근의 CSS 가 적용된 페이지를
깨끗하게 PDF 파일로 만들지 못하는것을 확인하였다.
이에 이리저리 찾다 dompdf 를 발견하여 서버에 적용 해보니 매우 web page 에 
표시 되는 만큼은 PDF 가 만들어 지는것을 알게 되어 개발시 적용한 경험을
아래와 같이 남긴다. ( 사설이 길군 ㅋ )

1. 다운로드
https://github.com/dompdf/dompdf/releases  
해당 페이지에서 버젼을 0.6.2 를 선택해서 다운로드 ( 한글 지원이 원활한 버젼이라고 함 )
( https://github.com/dompdf/dompdf/releases/download/v0.6.2/dompdf-0.6.2.zip ) 

2. 해당 프로그램 설치전 PHP 에 아래의 extension 설치 되어 있는지 확인 해본다.
MBString extension
GD extension
DOM extension
( 확인방법 phpinfo();  이용 ) 

3. 다운받은 dompdf 서버에 적당한 위치에 압축을 푼다.

4. dompdf/lib 폴더안에  필요한 프로그램 php-font-lib 관련이 없으므로 
https://github.com/PhenX/php-font-lib/releases   해당 경로에서 0.2.2버전을 다운로드 해서 
압축을 풀고 dompdf/lib  안에 넣어 준다.

5. dompdf 폴더에 원하는 이름의 파일명을( 예: example.php ) 만들고 아래의 소스가 실행되는지 브라우져에서 확인한다. 
<?php
include_once('dompdf/dompdf_config.inc.php');
$error_level = error_reporting();
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
$name = "by hongtting ";    // 변수 지정가능
$html = "<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<style>
body { font-family:'NanumGothic', '나눔고딕', 'dotum', '돋움'; font-size: 11px; max-width: 750px !important;}
</style>
</head>
<body>
<div id='pdf_content_wrap'>
PDF 변환 테스트 입니다. $name
</div>
</body>
</html>";

//dompdf 버전 문제로 인한 html 소스 공백 제거
$html = preg_replace('/\r\n|\r|\n/','',$html);
//html 코드를 pdf로 변환 (변경하면 안됨)
$dompdf = new \DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper("a4");    // A4 용지에 맞게 작성됨.
$dompdf->render();
$dompdf->stream("tempfile.pdf");  // 바로 다운로드 됨
//  $dompdf->stream($filename . ".pdf", array("Attachment" => 0));        // 브라우져에서 열리게 됨.
error_reporting($error_level);
?>

6. PDF 가 만들어 진것을 확인 할수 있지만 한글이 깨져 있을것이다. 
위 소스와 같이 한글 NanumGothic 폰트가 해당 프로그램에 설치 되지 않아서 깨지는것이니 인터넷에서
해당 Font 를 찾아 다운 받아 dompdf 폴더안에 있는 파일 명 load_font.php 을 이용해서 아래와 같이 서버의 shell 에서 실행한다. 
6-1.다운로드 한글 ttf 파일 : NanumGothic.ttf
6-2.load_font.php 파일의 chmod 777 변경 후 실행

#> ./load_font.php 'NanumGothic' ./NanumGothic.ttf ./NanumGothic.ttf

7. 브라우져에서 example.php  실행 하면 정상적으로 나오는것을 확인 할 수 있다. 



## 우분투에 php extention 설치지 아래 참조 
service apache2 restart
 
sudo apt-get install php7.0-mbstring
sudo apt-get install libapache2-mod-php7.0
 
sudo apt-get install php7.0-gd

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다