[python] ReportLab 동적 테이블

1. 소개

ReportLab은 Python에서 PDF 문서를 생성하기 위한 강력한 라이브러리입니다. ReportLab을 사용하면 텍스트, 이미지, 도형 및 동적 테이블과 같은 다양한 요소를 포함한 PDF 문서를 생성할 수 있습니다.

이번 블로그 포스트에서는 ReportLab을 사용하여 동적 테이블을 생성하는 방법에 대해 알아보겠습니다.

2. 설치

ReportLab을 사용하기 위해 먼저 패키지를 설치해야 합니다. 다음 명령어를 사용하여 패키지를 설치할 수 있습니다.

pip install reportlab

3. 동적 테이블 생성하기

ReportLab을 사용하여 동적 테이블을 생성하려면 다음 단계를 따르면 됩니다.

3.1 필요한 모듈 불러오기

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
from reportlab.lib import colors

3.2 데이터 준비하기

테이블에 표시할 데이터를 준비해야 합니다. 기본적으로 2차원 리스트로 데이터를 구성하며, 첫 번째 행은 테이블의 헤더로 사용됩니다. 예를 들어 다음과 같이 데이터를 구성할 수 있습니다.

data = [
    ['이름', '나이', '성별'],
    ['John', '25', '남성'],
    ['Emma', '30', '여성'],
    ['Michael', '35', '남성']
]

3.3 테이블 생성하기

table = Table(data)

3.4 테이블 스타일 지정하기

테이블의 스타일을 지정하기 위해 TableStyle을 사용합니다. 예를 들어 다음과 같은 스타일을 지정할 수 있습니다.

style = TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), colors.gray),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.white),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('FONTSIZE', (0, 0), (-1, 0), 14),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
    ('TEXTCOLOR', (0, 1), (-1, -1), colors.black),
    ('FONTNAME', (0, 1), (-1, -1), 'Helvetica'),
    ('FONTSIZE', (0, 1), (-1, -1), 12),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),
    ('BOTTOMPADDING', (0, 0), (-1, -1), 6),
    ('BACKGROUND', (0, 0), (0, -1), colors.beige),
    ('BACKGROUND', (-1, 0), (-1, -1), colors.beige),
    ('BACKGROUND', (0, -1), (-1, -1), colors.beige),
    ('GRID', (0, 0), (-1, -1), 1, colors.black),
])
table.setStyle(style)

3.5 PDF 문서에 테이블 추가하기

pdf = SimpleDocTemplate("dynamic_table.pdf", pagesize=letter)
pdf.build([table])

4. 실행 결과

위의 코드를 실행하면 dynamic_table.pdf라는 이름의 PDF 파일이 생성됩니다. 이 파일을 열어보면 동적 테이블이 생성된 것을 확인할 수 있습니다.

5. 결론

ReportLab을 사용하여 Python에서 동적 테이블을 생성하는 방법에 대해 알아보았습니다. 동적 테이블을 사용하면 다양한 데이터를 보기 좋게 표시할 수 있으며, ReportLab의 다른 기능들과 함께 활용하면 더욱 다양한 문서를 생성할 수 있습니다. ReportLab의 공식 문서를 참조하여 더 많은 기능과 사용 예시를 살펴보시기 바랍니다.

6. 참고 자료