[python] ReportLab 표 정렬 방법

ReportLab은 파이썬을 위한 강력한 PDF 생성 라이브러리입니다. 이 라이브러리를 사용하면 PDF 문서를 생성하고 편집하는 다양한 작업을 수행할 수 있습니다. 특히, 표를 생성하고 정렬하는 작업은 매우 일반적입니다.

이 문서에서는 ReportLab을 사용하여 표를 생성하고 텍스트를 정렬하는 방법을 알아보겠습니다.

표 생성

우선 ReportLab을 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

pip install reportlab

다음은 ReportLab을 사용하여 표를 생성하는 예제입니다:

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

data = [['Name', 'Age', 'Gender'],
        ['John', '25', 'Male'],
        ['Jane', '30', 'Female'],
        ['Michael', '35', 'Male']]

# PDF 문서 생성
pdf = SimpleDocTemplate("table.pdf", pagesize=letter)

# 표 생성
table = Table(data)

# 표 스타일 설정
table.setStyle([
    ('ALIGN', (0, 0), (-1, 0), 'CENTER'),
    ('VALIGN', (0, 0), (-1, 0), 'MIDDLE'),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.blue),
    ('BACKGROUND', (0, 0), (-1, 0), colors.lightblue),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('FONTSIZE', (0, 0), (-1, 0), 12),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
    ('GRID', (0, 0), (-1, -1), 1, colors.black),
])

# 문서에 표 추가
pdf.build([table])

표 정렬

표에서 텍스트를 정렬하는 방법은 표의 스타일을 설정하여 수행할 수 있습니다. 다음은 테이블의 각 셀의 정렬을 설정하는 몇 가지 스타일 옵션입니다:

예를 들어, 다음 코드는 첫 번째 행의 텍스트를 중앙 정렬하고, 다른 셀은 좌측 정렬로 설정합니다:

table.setStyle([
    ('ALIGN', (0, 0), (-1, 0), 'CENTER'),  # 헤더 행 가로 정렬
    ('ALIGN', (0, 1), (-1, -1), 'LEFT'),   # 나머지 행 가로 정렬
    ('VALIGN', (0, 0), (-1, -1), 'MIDDLE') # 모든 행 세로 정렬
])

위의 예제 코드를 참고하여 원하는 정렬을 설정할 수 있습니다.

참고 자료