웹솔루션개발 22년 노하우! 해피CGI의 모든것

[해피CGI][cgimall] wkhtmltopdf 본문

웹프로그램밍 자료실/C언어 자료

[해피CGI][cgimall] wkhtmltopdf

해피CGI윤실장 2018. 7. 5. 09:02

C++로 제작된 HTML 소스코드를 PDF 파일로 변환하는 프로그램을 활용해서 URL로 접속한 화면을 PDF파일로 다운로드 받을수 있는 심플한 PHP프로그램의 예제입니다.


HTML 소스코드를 이용해서 PDF파일로 변환하는 프로그램을 활용해서
URL에 해당하는 화면을 PDF파일로 다운로드 받는 심플한 PHP프로그램 소스코드입니다.


1. 다운로드 받은 압축 파일을 웹서버에 업로드 하고 압축을 풀어줍니다.

압축을 해제하고 나면 아래 그림과 같은 폴더 및 파일들이 서버에 생성이 됩니다.



2. SSH나, Putty 같은 쉘 프로그램을 이용해서

 


서버에서 위 그림의 명령어를 실행해보면
명령어 인자 2번째에 해당하는 파일이 생성이 되는지를 확인해야 합니다.

제가 사용하는 웹서버에서는
별다른 문제 없이 pdf 파일이 생성이 되네요.



만약 이 과정에서 오류가 생기면
https://wkhtmltopdf.org/downloads.html


위 사이트에서
웹서버의 OS의 종류와, bit 에 맞는 실행파일을 다운로드 하셔서
bin 폴더에 업로드 해보셔야 합니다.

다양한 OS에 해당하는 파일을 업로드하려고 했지만,
제법 용량이 만만치 않아서 링크만 걸어봅니다.


3. html 소스코드를 pdf 파일로 생성했을때,
몇가지 트러블이 생길수 있습니다.
저는 그런 문제를 겪지 않고 한번에 잘 되었으나,
웹서버의 종류 및 웹서버에서 사용가능한 폰트 가 없다는 등의 이유로
PDF파일에 한글이 표시되지 않거나, PDF파일의 결과물이
웹사이트에 접속했을때 모니터로 보이는 화면과 같지 않거나,
PDF파일을 생성하지 못하거나 할수도 있다네요.


4. 저는 PDF파일이 생성이 잘되었으므로,
이를 웹화면으로 URL을 입력받는 화면을 위해서 index.html 파일을 하나 작성했고,



아래와 같은 형식의 주소로 웹브라우저를 이용해서 접속했을때



위와 같은 그림의 입력폼이 출력이 됩니다.


5. URL을 입력하고 제출하기를 클릭하면
해당 URL의 화면을 PDF파일로 다운로드가 가능하도록
PHP프로그램 소스코드를 심플하게 작성해봤습니다.


예제 PDF파일생성)
해피CGI(http://happycgi.com)

 


네이버,구글, 다음 등 




PDF 파일이 아니라, 이미지파일로 변환하는 기능도 구현이 된것 같습니다.
입력값을 검증하거나, 예외상황에 대한 처리등은 시간관계상 못했지만,
필요한 부분들에 손을 좀 대다보면,
운영하시는 홈페이지에서
특정 사이트의 웹페이지의 화면을
PDF파일(이미지파일)로 다운로드 받아야 하는 상황에서는 쉽게 쓸 수 있을듯도 하네요.



홈페이지바로가기 소스다운로드

Comments