Programming/PHP

wkhtmltopdf

minarae7 2013. 4. 15. 18:59
728x90
반응형

php를 이용해서 웹 사이트의 특정 페이지를 pdf로 변환해야하는 작업을 진행중이다.


구지 php를 사용할 필요는 없지만 사이트 개발 언어로 php를 사용하였기 때문에 php를 이용해서 라이브러리를 찾아보았다.


여러 가지 라이브러리들(tcpdf, pdflib, dompdf 등)을 사용하였지만 만족할 만한 퀄리티의 라이브러리를 찾기 힘들었다.


그러던 중 wkhtmltopdf라는 라이브러리를 찾았다. 라이브러리라기 보다 프로그램을 찾았다고 해야할거 같다.


사이트는 여기 https://code.google.com/p/wkhtmltopdf/


여기서 여러가지를 패키지를 다운받아서 사용하다가 보니 ubuntu에서 심지어 apt-get으로 설치할 수 있다!!!


기록을 위해서 포스팅


1. apt-get install wkhtmltopdf xvfb

일단 apt-get으로 wkhtmltopdf를 설치~!!


2. 그리고 테스트

xvfb-run --server-args='-screen 0, 1024x768x24' wkhtmltopdf --dpi 300 --page-size A4 http://naver.com naver.pdf


위의 명령어를 통해서 테스트를 진행한다.


확인해보니 wkhtmltopdf를 돌려서 pdf를 생성하는 것이 아니고 xvfb라는 프로그램을 통해서 pdf를 생성한다. 정확하게 찾아보지는 않았지만 명령어 구조를 보아하니 가상스크린을 xvfb-run이 만들어주고 그 스크린을 받아서 wkhtmltopdf로 넘겨주면 이 프로그램이 pdf를 만들어주는 것으로 보인다.


근데 여기서 문제가 발생했다.


PDF로 변환은 아주 잘 되는데 한글이 안나온다.


원인을 추측해 본 결과 wkhtmltopdf는 ubuntu의 기본 글꼴을 가지고 와서 pdf를 생성하는 것으로 보이는데 ubuntu server에는 한글 기본 글꼴이 설치되어 있지 않다.


다시 뭔가를 설치하여야 하는 상황!!


구글링을 통해서 정답 확인~!!


3. apt-get install msttcorefonts

일단 MS Core Font를 설치~!!그리고 다시 테스트~


그러나 아직 안된다. 한글을 블록으로 나와버리는 현상.. 다른걸 찾아보자.


4. apt-get install ttf-unfonts-core

찾다가 보니 우분투 서버에 x terminal을 설치하는 글을 찾았다. 여기서 다른거는 다 모르겠고 위의 명령어를 통해서 한글 폰트 설치.


목적은 x terminal을 돌리는게 아니고 한글폰트를 설치하는거니까 다른거 다 무시하고 폰트만 설치~!!


그리고 테스트~!!아주 잘 나온다~!!유후~!!


성공~!!!

728x90
반응형