[파이썬] web2py에서의 PDF 생성

web2py는 파이썬 웹 프레임워크로, 다양한 기능을 제공합니다. 그 중 하나는 PDF 생성입니다. 웹 애플리케이션에서 동적으로 PDF 문서를 생성하고 다운로드할 수 있습니다. 이 글에서는 web2py에서의 PDF 생성 방법을 알아보겠습니다.

PDFKit과 wkhtmltopdf

web2py에서 PDF를 생성하기 위해서는 PDFKit과 wkhtmltopdf 라이브러리를 사용할 수 있습니다. PDFKit은 wkhtmltopdf를 래핑한 파이썬 라이브러리로, HTML 문서를 PDF로 변환하는 기능을 제공합니다. 따라서 wkhtmltopdf도 함께 설치해야 합니다.

import pdfkit

pdfkit.from_file('input.html', 'output.pdf')

위의 예제 코드는 input.html 파일을 읽어와 output.pdf 파일로 변환하는 간단한 예제입니다. from_file 함수를 사용하여 HTML 파일을 PDF로 변환할 수 있습니다.

web2py에서 PDF 생성하기

web2py에서 PDF를 생성하는 방법은 간단합니다. 먼저 PDF를 생성하고자 하는 웹 페이지를 만들어야 합니다. web2py의 뷰 파일로 HTML 문서를 작성합니다.

<!-- views/pdf/index.html -->

<!DOCTYPE html>
<html>
<head>
    <title>PDF Example</title>
</head>
<body>
    <h1>PDF Example</h1>

    <p>Hello, PDF!</p>
</body>
</html>

위의 HTML 코드는 간단한 웹 페이지로, “PDF Example”이라는 제목과 “Hello, PDF!”라는 텍스트를 가지고 있습니다.

이제 웹 루트 디렉토리에 pdf라는 컨트롤러를 만듭니다.

# controllers/pdf.py

import pdfkit

def index():
    html = response.render('pdf/index.html')
    pdfkit.from_string(html, 'output.pdf')

    return "PDF 생성 완료"

위의 예제 코드에서는 index 함수를 정의하고, response.render 함수를 사용하여 pdf/index.html 뷰 파일을 렌더링한 후, pdfkit.from_string 함수를 사용하여 HTML 문자열을 PDF로 변환합니다. output.pdf 파일로 PDF를 저장하고, “PDF 생성 완료”라는 문자열을 반환합니다.

이제 웹 애플리케이션을 실행하고, /pdf/index 경로로 접속하면 PDF가 생성됩니다. 생성된 PDF는 output.pdf 파일로 다운로드됩니다.

결론

이번 글에서는 web2py에서의 PDF 생성 방법을 알아보았습니다. PDFKit과 wkhtmltopdf 라이브러리를 사용하여 HTML을 PDF로 변환할 수 있고, web2py의 뷰 파일을 활용하여 동적인 웹 페이지를 PDF로 생성할 수 있습니다. PDF 생성은 web2py에서 다양한 활용 가능성을 제공하므로, 웹 애플리케이션 개발 시 유용한 기능입니다.

더 자세한 내용은 web2py 공식 문서를 참고하시기 바랍니다.