반응형
Python을 이용해 HTML => PDF로 변환하는 방법을 알아보려고 합니다.
만약 도커를 잘 모른다면, 이 글을 통해 도커를 간단히 배우고 사용하는 것을 추천합니다!
# 개발환경
OS : Ubuntu 18.04 (WSL2 Docker)
# Dockerfile
# Dockerfile
FROM python:3.8
COPY ./requirements.txt /
RUN pip install -r ./requirements.txt
# HTML to PDF Lib
RUN apt-get update && apt-get install -y wkhtmltopdf && apt-get install -y xvfb && apt-get install -y fontconfig
COPY ./SpoqaHanSansNeo_all.zip /usr/share/fonts/
RUN unzip /usr/share/fonts/SpoqaHanSansNeo_all.zip -d /usr/share/fonts/
RUN fc-cache -f -v
# COPY source code
ADD ./ /opt/
WORKDIR /opt/
# requirements.txt
pdfkit==1.0.0
우분투 내 존재하는 라이브러리를 이용해서 html이 pdf로 변환되기 때문에 몇 가지 라이브러리를 설치해야 합니다.
- wkhtmltopdf - html2pdf 변환 라이브러리
- xvfb - 브라우저를 띄우지 않고 브라우저에 해당하는 작업을 할 수 있게 가상 프레임을 생성
- fontconfig - 폰트 설치를 위해
# 폰트
https://spoqa.github.io/spoqa-han-sans/en-US/#download
사이트에 접근해서 Download All(약 90mb)을 이용해 폰트를 다운받았습니다.
# 최종 구성
폴더에 다음과 같이 파일을 구성하고 docker를 올리면 됩니다.
반응형
'프로그래밍 공부(정리) > Python' 카테고리의 다른 글
[Python] 소수점 n번째 자리에서 반올림 (0) | 2023.02.06 |
---|---|
[Python] Numpy - np.log, np.log2, np.log10, np.log1p 함수 (0) | 2022.01.06 |
[Python] Opencv - 이미지 사이즈 확인 (shape 함수) (0) | 2022.01.05 |
댓글