[python] ReportLab 그리드 라인 설정

ReportLab은 Python에서 PDF 문서를 생성하는 데 사용되는 강력한 라이브러리입니다. 그리드 라인은 PDF 문서에서 테이블 형태의 레이아웃을 만들 때 유용한 기능입니다. 이번 글에서는 ReportLab을 사용하여 그리드 라인을 설정하는 방법에 대해 알아보겠습니다.

그리드 라인 만들기

ReportLab에서 그리드 라인을 만들기 위해 grid모듈을 사용합니다. 이 모듈은 Canvas 객체에 그리드 라인을 추가하는 기능을 제공합니다. 아래의 예제 코드를 통해 그리드 라인을 설정하는 방법을 자세히 알아보겠습니다.

from reportlab.lib.pagesizes import letter
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
from reportlab.lib.units import inch
from reportlab.pdfgen import canvas

def create_grid():
    doc = SimpleDocTemplate("grid_example.pdf", pagesize=letter)
    elements = []
    
    data = [
        ["Name", "Age", "City"],
        ["John Doe", "25", "New York"],
        ["Jane Smith", "30", "London"],
        ["Mike Johnson", "35", "Paris"],
    ]
    
    table = Table(data)
    table.setStyle(TableStyle([
        ('GRID', (0, 0), (-1, -1), 1, colors.black),
        ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
        ('FONTSIZE', (0, 0), (-1, 0), 14),
        ('BACKGROUND', (0, 0), (-1, 0), colors.grey)
    ]))
    
    elements.append(table)
    doc.build(elements)

create_grid()

위의 코드는 grid_example.pdf라는 이름으로 PDF 파일을 생성하며, 그리드 라인이 포함된 테이블을 생성합니다. TableStyle 클래스를 사용하여 테이블의 스타일을 지정하고, GRID 속성을 통해 그리드 라인의 두께와 색상을 설정할 수 있습니다.

결과 확인하기

위의 예제 코드를 실행하면 grid_example.pdf라는 파일이 생성됩니다. 이 파일을 열어보면 첫 번째 행에는 굵은 글꼴과 회색 배경색이 적용된 헤더가 있으며, 나머지 행에는 텍스트와 선으로 구분된 테이블이 만들어집니다. 그리드 라인은 테이블의 모든 셀에 적용됩니다.

결론

Python의 ReportLab을 사용하여 그리드 라인을 설정하는 방법에 대해 알아보았습니다. 이를 활용하면 PDF 문서로 테이블을 작성할 때 더욱 깔끔하고 구조적인 결과물을 만들 수 있을 것입니다. ReportLab의 풍부한 기능을 사용하여 보다 다양한 형태의 PDF 문서를 생성해보세요!

참고 자료