[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])
표 정렬
표에서 텍스트를 정렬하는 방법은 표의 스타일을 설정하여 수행할 수 있습니다. 다음은 테이블의 각 셀의 정렬을 설정하는 몇 가지 스타일 옵션입니다:
('ALIGN', (column, row_start), (column, row_end), 'alignment')
: 지정된 열의 셀에 대한 가로 정렬을 설정합니다.'alignment'
은'LEFT'
,'RIGHT'
,'CENTER'
중 하나입니다.('VALIGN', (column, row_start), (column, row_end), 'alignment')
: 지정된 열의 셀에 대한 세로 정렬을 설정합니다.'alignment'
은'TOP'
,'BOTTOM'
,'MIDDLE'
중 하나입니다.
예를 들어, 다음 코드는 첫 번째 행의 텍스트를 중앙 정렬하고, 다른 셀은 좌측 정렬로 설정합니다:
table.setStyle([
('ALIGN', (0, 0), (-1, 0), 'CENTER'), # 헤더 행 가로 정렬
('ALIGN', (0, 1), (-1, -1), 'LEFT'), # 나머지 행 가로 정렬
('VALIGN', (0, 0), (-1, -1), 'MIDDLE') # 모든 행 세로 정렬
])
위의 예제 코드를 참고하여 원하는 정렬을 설정할 수 있습니다.