[python] ReportLab 보고서 생성 방법

ReportLab는 파이썬에서 PDF 보고서를 생성하기 위한 강력한 라이브러리입니다. 이 블로그 포스트에서는 ReportLab을 사용하여 보고서를 생성하는 방법을 알아보겠습니다.

1. ReportLab 설치

먼저 ReportLab을 설치해야 합니다. 아래의 명령을 사용하여 pip를 통해 ReportLab을 설치할 수 있습니다.

pip install reportlab

2. 보고서 생성하기

2.1 필수 모듈 import하기

먼저 ReportLab의 필수 모듈을 import해야 합니다.

from reportlab.lib.pagesizes import letter
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer

2.2 보고서 디자인 구성하기

보고서를 디자인하기 위해 SimpleDocTemplate 클래스를 사용합니다. 아래의 코드를 사용하여 보고서를 만들고 필요한 디자인 요소들을 추가해보세요.

doc = SimpleDocTemplate("report.pdf", pagesize=letter)

styles = getSampleStyleSheet()
title = Paragraph("보고서 제목", styles["Heading1"])
content = Paragraph("보고서 내용", styles["Normal"])

story = []
story.append(title)
story.append(Spacer(1, 20))
story.append(content)

doc.build(story)

위의 예제에서는 “report.pdf”라는 파일명을 가진 보고서를 생성하는데, 제목과 내용을 추가하고 저장하는 것을 확인할 수 있습니다.

2.3 보고서 스타일 설정하기

ReportLab은 기본적으로 일반 텍스트 스타일을 제공하지만, 스타일을 더 세부적으로 설정하고 싶을 경우에는 ParagraphStyle을 사용할 수 있습니다. 예를 들어, 제목 스타일을 다음과 같이 변경할 수 있습니다.

from reportlab.lib.styles import ParagraphStyle
from reportlab.lib import colors

title_style = ParagraphStyle(
    name="TitleStyle",
    parent=styles["Heading1"],
    textColor=colors.blue,
    fontSize=20,
)

title = Paragraph("보고서 제목", title_style)

위의 예제에서는 “TitleStyle”이라는 새로운 스타일을 정의하고, 제목의 텍스트 색상을 파란색으로, 글꼴 크기를 20으로 설정하였습니다.

3. 보고서에 그래프 추가하기

ReportLab은 그래프를 생성하고 보고서에 추가할 수 있는 기능을 제공합니다. 예를 들어, matplotlib을 사용하여 그래프를 생성하고 ReportLab에 추가할 수 있습니다.

import matplotlib.pyplot as plt

# 그래프 생성
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])

# 그래프 이미지 저장
figure_path = "graph.png"
plt.savefig(figure_path)

# ReportLab 보고서에 그래프 추가
from reportlab.platypus import Image

graph = Image(figure_path)
story.append(graph)

위의 예제에서는 matplotlib을 사용하여 간단한 선 그래프를 생성하고, 그래프를 이미지 파일로 저장한 후 ReportLab 보고서에 추가하는 방법을 보여줍니다.

4. 결론

이렇게 ReportLab을 사용하여 파이썬에서 보고서를 생성하는 방법을 알아보았습니다. ReportLab은 다양한 디자인 요소와 기능을 제공하므로, 보고서 작성에 유용한 도구입니다. ReportLab 공식 문서에 자세한 내용이 있으니 참고하시기 바랍니다. ReportLab 공식 문서 링크