[python] ReportLab 캔버스 사용법

ReportLab은 파이썬에서 사용할 수 있는 강력한 PDF 생성 라이브러리입니다. 이 라이브러리를 사용하면 파이썬 코드로 PDF 문서를 생성하고 조작할 수 있습니다. ReportLab의 중요한 구성 요소 중 하나는 캔버스(Canvas)입니다. 캔버스를 사용하여 PDF 페이지에 그래픽 요소를 그리고 텍스트를 추가할 수 있습니다.

캔버스 생성하기

먼저 ReportLab 모듈을 설치한 후 캔버스를 생성해 보겠습니다.

from reportlab.pdfgen import canvas

# PDF 파일 생성 및 캔버스 생성
pdf_name = "example.pdf"
pdf_canvas = canvas.Canvas(pdf_name)

위 코드에서 canvas 모듈의 Canvas 클래스를 임포트하여 캔버스 객체를 생성합니다. 캔버스 객체를 생성할 때에는 PDF 파일의 이름을 인자로 지정해주어야 합니다.

그래픽 요소 그리기

캔버스를 생성한 후에는 그래픽 요소를 그릴 수 있습니다. 다음은 캔버스에 선, 사각형, 원 등을 그리는 예제입니다.

# 선 그리기
pdf_canvas.line(100, 100, 200, 200)

# 사각형 그리기
pdf_canvas.rect(300, 300, 100, 50)

# 원 그리기
pdf_canvas.circle(400, 200, 50)

위 코드에서 line() 메서드는 두 점을 연결하는 선을 그리고, rect() 메서드는 사각형을 그리며, circle() 메서드는 원을 그립니다. 각 메서드에는 그래픽 요소의 위치와 크기를 인자로 전달해주어야 합니다.

텍스트 추가하기

캔버스에 텍스트를 추가하는 방법은 다음과 같습니다.

# 텍스트 추가
pdf_canvas.drawString(100, 100, "Hello, ReportLab!")

# 서식 지정하여 텍스트 추가
from reportlab.lib.styles import getSampleStyleSheet

styles = getSampleStyleSheet()
style = styles["Normal"]

pdf_canvas.setFont("Helvetica-Bold", 12)
pdf_canvas.setFillColor("red")

text = "<b>Bold</b> and <i>colored</i>"
pdf_canvas.drawString(200, 200, text, mode="html", fill=1)

# 캔버스 닫기
pdf_canvas.save()

위 코드에서 drawString() 메서드를 사용하여 텍스트를 추가할 수 있습니다. 인자로는 텍스트의 위치와 내용을 전달합니다. 또한, 서식을 지정하여 텍스트를 추가할 수도 있습니다. setFont() 메서드와 setFillColor() 메서드를 사용하여 서식을 설정할 수 있습니다. mode 인자를 “html”로 설정하면 HTML 태그를 사용하여 텍스트를 추가할 수도 있습니다.

결론

ReportLab의 캔버스를 사용하면 파이썬으로 다양한 그래픽 요소와 텍스트를 PDF 문서에 추가할 수 있습니다. 캔버스를 활용하여 원하는 레이아웃과 디자인의 PDF 문서를 생성할 수 있습니다. ReportLab의 공식 문서를 참고하여 더 많은 기능을 알아보세요.

참고 자료