[python] ReportLab 셀 병합
ReportLab은 파이썬에서 PDF 문서를 생성하는 데 사용되는 강력한 라이브러리입니다. 이 라이브러리를 사용하여 표를 생성하고, 셀을 병합하는 방법에 대해 알아보겠습니다.
보통 ReportLab에서 표를 생성하기 위해 Table
클래스를 사용합니다. Table
클래스의 생성자에는 표의 데이터를 포함하는 2차원 배열을 전달해야 합니다. 이 배열의 각 요소가 표의 셀에 해당합니다.
셀을 병합하기 위해서는 Table
클래스의 drawOn
메서드를 사용해야 합니다. 이 메서드에는 캔버스 객체와 표의 위치, 너비, 높이를 전달해야 합니다. 추가로 셀을 병합하는 데 사용할 수 있는 TableStyle
객체를 생성해야 합니다.
아래는 ReportLab을 사용하여 셀을 병합하는 간단한 예제입니다.
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
from reportlab.lib.pagesizes import letter
# PDF 문서 생성
doc = SimpleDocTemplate("merged_cells.pdf", pagesize=letter)
# 표 데이터 설정
data = [
["Name", "Age", "Country"],
["John Doe", "25", "USA"],
["Jane Smith", "30", "Canada"],
["Alex Johnson", "28", "Australia"],
]
# 셀 병합 설정
merged_cells = [('SPAN', (0, 0), (2, 0)), # 첫 번째 행 셀 병합
('SPAN', (1, 3), (2, 3))] # 네 번째 행 두 번째 열 셀 병합
# 표 생성
table = Table(data)
# 표 스타일 설정
table_style = TableStyle(merged_cells)
# 테이블에 스타일 적용
table.setStyle(table_style)
# 테이블을 PDF에 그리기
elements = [table]
doc.build(elements)
위의 예제에서는 data
배열을 사용하여 표 데이터를 설정하고, merged_cells
변수를 사용하여 병합할 셀을 설정합니다. TableStyle
을 사용하여 merged_cells
에 설정한 병합 정보를 표에 적용합니다. 그리고 생성한 테이블을 drawOn
메서드를 통해 PDF에 그립니다.
위의 코드를 실행하면 “merged_cells.pdf”라는 이름의 PDF 파일이 생성되고, 첫 번째 행 셀과 네 번째 행 두 번째 열 셀이 정상적으로 병합된 표를 확인할 수 있습니다.