[python] ReportLab 표 컬럼 세로 길이 조절

ReportLab은 파이썬에서 PDF 문서를 생성하기 위해 사용되는 라이브러리입니다. 이를 사용하여 표를 생성하고 출력하는 경우, 표의 컬럼의 세로 길이를 조절해야 할 때가 있습니다. 이 글에서는 ReportLab을 사용하여 표 컬럼 세로 길이를 조절하는 방법을 알아보겠습니다.

1. ReportLab 설치

ReportLab을 사용하기 위해 먼저 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 pip를 통해 설치할 수 있습니다.

pip install reportlab

2. 표 생성 및 컬럼 세로 길이 조절

ReportLab을 사용하여 표를 생성하고 컬럼의 세로 길이를 조절하기 위해서는 TableTableStyle을 사용합니다. 아래의 예시 코드를 참고하여 표의 컬럼 세로 길이를 조절하는 방법을 살펴보세요.

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

def generate_pdf():
    data = [
        ["Name", "Age", "Email"],
        ["John Doe", "25", "john@gmail.com"],
        ["Jane Smith", "30", "jane@gmail.com"]
    ]
    
    doc = SimpleDocTemplate("table.pdf", pagesize=letter)
    
    # 표 생성
    table = Table(data)
    table.setStyle(TableStyle([
        ("BACKGROUND", (0, 0), (-1, 0), colors.blue),  # 첫 행 배경색 변경
        ("TEXTCOLOR", (0, 0), (-1, 0), colors.white),  # 첫 행 텍스트 색상 변경
        ("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.lightblue)  # 나머지 행 배경색 변경
    ]))
    
    # 컬럼 세로 길이 조절
    table._argW[0] = 80  # 첫 번째 컬럼의 세로 길이를 80으로 설정
    
    elements = []
    elements.append(table)
    doc.build(elements)

if __name__ == "__main__":
    generate_pdf()

위의 예시 코드에서는 Table 객체를 생성한 후, TableStyle을 사용하여 표의 스타일을 설정하고 있습니다. TableStyle에서 BACKGROUND, TEXTCOLOR, ALIGN, FONTNAME, FONTSIZE, BOTTOMPADDING 등의 속성을 설정할 수 있습니다.

컬럼 세로 길이를 조절하기 위해서는 Table._argW 리스트를 이용합니다. 위의 예시 코드에서는 첫 번째 컬럼의 세로 길이를 80으로 설정하고 있습니다. 상황에 따라 다른 컬럼의 길이를 조절하려면 해당하는 인덱스의 값을 변경하면 됩니다.

결론

이렇게 ReportLab 라이브러리를 사용하여 표의 컬럼 세로 길이를 조절할 수 있습니다. TablesTableStyle을 사용하여 다양한 스타일을 설정할 수 있으므로 필요에 따라 표의 모양을 커스터마이즈할 수 있습니다.