[파이썬] wkhtmltopdf 설치하기(centOS)

SY_CW·2021년 12월 8일
0

파이썬

목록 보기
1/1

프로젝트를 하다보니 데이터에 대한 리포트 기능을 개발하게 되었다.
파이썬을 이용해서 PDF 파일로 출력해야했고 파이썬을 배운지 얼마 안되고 나서의 업무라 구글링으로 정보를 많이 찾았고 해당 내용을 정리하고자 한다.

1. 개발 전 선택사항

몇날 며칠을 방법을 여러가지 찾으면서 내 개발환경에 적합한 모듈을 탐색하며 기능을 설계했다.
결론은 지금 포스팅 중인 wkhtmltopdf 라는 모듈이 지금 내 개발환경에서는 적합했고 개발도 어느정도 용이했다.

  • 필자는 Python Django REST Framework(DRF)를 이용해서 개발중이고 개발 및 동작서버는 CentOS
  • django.template.loader의 get_template과 render 함수를 이용해서 html에 context 내용을 전달하여 값을 출력하기 용이함
  • 즉 HTML 포맷만 잘 짜놓고 context로 전달된 값을 찍어주면 원하는 개발이 가능

2. wkhtmltopdf 설치 (CentOS)

아래와 같이 설치 후, wkhtmltopdf 설치 경로를 꼭꼭 기억(메모)해두어야 호출할 수 있다.

1. wget으로 설치
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

2. tar파일 /usr/bin으로 이동
mv wkhtmltox-0.12.4_linux-generic-amd64.tar.xz /usr/bin/.
cd /usr/bin

3. tar파일 풀고 wkhtmltopdf copy
tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
cp wkhtmltox/bin/wkhtmltopdf /usr/bin/

4. 동작확인 (Naver 사이트 화면을 PDF로 변환)
wkhtmltopdf "http://www.naver.com" newfile.pdf

3. 함께 사용한 친구 PDFKit

PDFKit는 wkhtmltopdf 파일을 이용하여 실제 변환될 PDF 파일 페이지에 대한 세세한 size / 위아래 여백 / footer 정보 등을 세심히 편집할 수 있는 툴이라고만 알고 개발했다. (상세한 내용은 다시 검색을 하면서 공부해야할듯..)

pip3 install PDFKit

4. 실제 소스에 적용되어야할 부분

  • settings.py 에 wkhtmltopdf가 설치된 경로 추가

    wkhtmltopdf = '/usr/bin/wkhtmltopdf'
  • settings.py 맨 아래(아무데나 상관없음) pdf_options 추가
    + 추후 실제 PDF파일 출력 시 필요한 정보
    + settings.py가 아닌 다른 파일에 추가해도 무방함

    pdf_options = {
        'page-size': 'A4',
        'margin-top': '0.40in',
        'margin-bottom': '0.60in',
        'margin-right': '0in',
        'margin-left': '0in',
        'encoding': "UTF-8",
        'footer-center': '[page]',
        'custom-header': [
            ('Accept-Encoding', 'gzip')
        ],
        'cookie': [
            ('cookie-name1', 'cookie-value1'),
            ('cookie-name2', 'cookie-value2'),
        ],
        "quiet": "",
        'no-outline': None,
    }

다음 포스팅 에서는 실제 개발할때 사용되는 부분에 대해 정리하여 기록할 예정이다.

profile
캠린이의 파이썬 VELOG

0개의 댓글

관련 채용 정보