[python] ReportLab 표 정렬

ReportLab은 파이썬에서 PDF 문서를 생성하기 위한 강력한 라이브러리입니다. 표는 문서에서 중요한 역할을 하는 요소 중 하나이며, ReportLab을 사용하여 표를 생성하고 정렬하는 방법을 알아보겠습니다.

ReportLab에서는 Table 클래스를 사용하여 표를 생성할 수 있습니다. 표의 행과 열을 지정하고, 필요에 따라 셀에 내용을 추가할 수 있습니다. 먼저, TableStyle 클래스를 사용하여 표의 스타일을 지정할 수 있습니다.

표 생성하기

다음은 ReportLab을 사용하여 간단한 표를 생성하는 예제 코드입니다.

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

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

# 표 생성을 위한 데이터
data = [
    ["이름", "나이", "성별"],
    ["John", "25", "남성"],
    ["Emily", "32", "여성"],
    ["Michael", "40", "남성"],
]

# 표 스타일 설정
style = TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), colors grey),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('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),
])

# 표 생성
table = Table(data)

# 표에 스타일 적용
table.setStyle(style)

# PDF 문서에 표 추가
Elements = []
Elements.append(table)
pdf.build(Elements)

위 코드를 실행하면 ‘table.pdf’라는 이름의 PDF 파일이 생성됩니다. 이 파일을 열어보면 테이블이 생성되고 스타일이 적용된 것을 확인할 수 있습니다.

표 정렬하기

ReportLab에서 표의 정렬은 TableStyle 클래스를 사용하여 설정할 수 있습니다. TableStyle 클래스의 ALIGN 속성을 사용하여 행과 열의 정렬을 지정할 수 있습니다. 아래 예제 코드는 표의 첫 번째 열을 왼쪽 정렬로 설정하는 방법을 보여줍니다.

..
style = TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), colors grey),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('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),
    ('ALIGN', (0, 0), (0, -1), 'LEFT'),
])
..

위 코드에서 ('ALIGN', (0, 0), (0, -1), 'LEFT')라는 부분은 표의 첫 번째 열에 대한 정렬을 왼쪽으로 지정하는 부분입니다.

ReportLab을 사용하여 표를 생성하고 정렬하는 방법에 대해 알아보았습니다. 이러한 기능을 사용하여 다양한 스타일의 표를 생성할 수 있습니다. ReportLab에 대한 자세한 내용은 공식 문서를 참조하시기 바랍니다.