[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에 대한 자세한 내용은 공식 문서를 참조하시기 바랍니다.
- ReportLab 공식 문서: https://www.reportlab.com/docs/