Python은 HTML 문서를 PDF로 변환할 수 있는 다양한 라이브러리를 제공합니다. 대표적으로 Pdfcrowd API v2가 있으며, 이 외에도 pdfkit처럼 몇 줄의 코드만으로 손쉽게 변환 작업을 처리할 수 있는 오픈소스 도구들이 있습니다. 이 글에서는 가장 널리 사용되는 pdfkit과 wkhtmltopdf를 활용해 웹페이지나 HTML 문서를 PDF로 변환하는 방법을 단계별로 소개합니다.
설치 방법
가장 먼저 PyPI에서 필요한 클라이언트 라이브러리를 설치합니다.
$ pip install pdfcrowd
웹페이지 또는 HTML 문서를 PDF로 변환하는 전체 과정은 아래의 3단계로 완료됩니다.
1단계 – pdfkit 라이브러리 설치
HTML을 PDF로 변환하는 핵심 역할을 하는 pdfkit 패키지를 설치합니다.
$ pip install pdfkit
2단계 – wkhtmltopdf 다운로드
pdfkit은 내부적으로 wkhtmltopdf 엔진을 사용하므로 반드시 함께 설치해야 합니다.
Ubuntu/Debian의 경우
sudo apt-get install wkhtmltopdf
Windows의 경우
(a) WKHTMLTOPDF 공식 사이트에서 설치 파일을 다운로드합니다. (b) 환경 변수의 PATH에 wkhtmltopdf 바이너리 폴더 경로를 추가합니다.
3단계 – Python 코드 작성
설치가 완료되었다면 아래 세 가지 방식 중 원하는 방법으로 PDF를 생성할 수 있습니다.
(i) 이미 저장된 HTML 파일 변환하기
로컬에 저장된 HTML 문서를 그대로 PDF 파일로 변환합니다.
import pdfkit
pdfkit.from_file('my_test.html', 'output.pdf')
(ii) 웹사이트 URL로 변환하기
URL만 지정하면 해당 웹페이지 전체를 PDF로 저장할 수 있습니다.
import pdfkit
pdfkit.from_url('https://www.google.co.in/', 'my_testpdf.pdf')
(iii) 텍스트를 PDF에 저장하기
문자열 데이터를 직접 PDF 문서로 변환할 수도 있습니다.
import pdfkit
pdfkit.from_string('my_testpdf ABC', 'testpdf.pdf')