[python] Django에서 PDF 생성하기

Django는 웹 애플리케이션을 빌드하는 데 매우 강력한 프레임워크입니다. 때로는 Django 애플리케이션에서 동적으로 PDF를 생성해야 하는 경우가 있을 수 있습니다. 이 기사에서는 Django 애플리케이션에서 PDF를 생성하는 방법에 대해 알아보겠습니다.

1. PDF 생성 라이브러리 선택

Python에는 다양한 PDF 생성 라이브러리가 있지만, 가장 인기 있는 라이브러리 중 하나는 ReportLab입니다. 다른 대안으로는 WeasyPrintxhtml2pdf와 같은 HTML을 PDF로 변환하는 라이브러리를 사용할 수도 있습니다. 그러나 이 예시에서는 ReportLab을 사용하여 PDF를 생성하는 방법을 설명하겠습니다.

2. ReportLab 설치

ReportLab을 설치하려면 다음 명령을 사용합니다:

pip install reportlab

3. Django에서 PDF 뷰 만들기

Django 애플리케이션에서 PDF를 생성하기 위해 새로운 뷰를 만들어야 합니다. 이 뷰는 PDF를 생성하고 HTTP 응답으로 반환해야 합니다. 다음은 간단한 예시입니다:

from reportlab.pdfgen import canvas
from django.http import HttpResponse

def generate_pdf(request):
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="mypdf.pdf"'
    
    # PDF 생성
    p = canvas.Canvas(response)
    p.drawString(100, 100, "Hello, World!")
    p.showPage()
    p.save()
    
    return response

이제 이 뷰를 URL에 매핑하고 웹 브라우저에서 액세스할 수 있도록 설정합니다.

4. 템플릿을 사용하여 PDF 생성

Django는 HTML 템플릿을 사용하여 PDF를 생성할 수도 있습니다. 이를 위해 우선 HTML을 생성한 다음, 이를 PDF로 변환할 수 있습니다. 이러한 경우 WeasyPrintxhtml2pdf와 같은 라이브러리가 유용할 수 있습니다.

마치며

이제 Django 애플리케이션에서 간단하게 PDF를 생성하는 방법에 대해 알아보았습니다. ReportLab을 사용하거나 HTML을 PDF로 변환하는 라이브러리를 선택하여 Django 애플리케이션에서 필요한 PDF를 동적으로 생성할 수 있습니다.

참고문헌:

```