[python] ReportLab 좌표 설정

ReportLab은 파이썬에서 PDF 문서를 생성하는 라이브러리입니다. 이 라이브러리를 사용하여 문서를 만들 때, 좌표를 설정하여 요소들을 배치할 수 있습니다. 이번 글에서는 ReportLab 좌표 설정에 대해 알아보겠습니다.

canvas 객체

ReportLab에서 좌표를 설정하고 문서를 만들기 위해서는 canvas 객체를 사용합니다. canvas 객체는 PDF 문서의 페이지를 나타내며, 여기에 요소들을 추가할 수 있습니다.

from reportlab.pdfgen import canvas

# 새로운 PDF 문서 생성
pdf = canvas.Canvas("example.pdf")

# 요소들을 추가하는 코드 작성

# PDF 문서 저장
pdf.save()

좌표 시스템

ReportLab에서는 기본적으로 1인치당 72 픽셀의 좌표 시스템을 사용합니다. 가로축은 왼쪽에서 오른쪽으로, 세로축은 아래쪽에서 위쪽으로 증가하는 방향입니다.

좌표를 설정할 때는 moveTo() 메서드를 사용하여 시작점을 지정하고, lineTo() 메서드를 사용하여 끝점을 지정합니다. 이렇게 지정한 선분은 stroke() 메서드를 사용하여 그릴 수 있습니다.

pdf = canvas.Canvas("example.pdf")

# 시작점(10, 10)에서 끝점(100, 100)까지 선 그리기
pdf.moveTo(10, 10)
pdf.lineTo(100, 100)
pdf.stroke()

pdf.save()

축약된 메서드

좌표를 더 간편하게 설정하기 위해, 앞서 언급한 moveTo()lineTo() 메서드 대신 line() 메서드를 사용할 수도 있습니다.

pdf = canvas.Canvas("example.pdf")

# 축약된 메서드를 사용한 선 그리기
pdf.line(10, 10, 100, 100)

pdf.save()

요소 배치하기

좌표를 설정하여 요소를 배치할 때, drawString() 메서드를 사용하여 텍스트를 쓸 수 있습니다. 이 때, 좌표는 텍스트의 왼쪽 아래 모서리를 가리키게 됩니다.

pdf = canvas.Canvas("example.pdf")

# 텍스트 출력하기
pdf.drawString(50, 50, "Hello, World!")

pdf.save()

결론

ReportLab을 사용하여 좌표를 설정하여 문서를 만들 수 있습니다. 이를 통해 요소들을 원하는 위치에 배치하고, 선과 텍스트를 그릴 수 있습니다. 좌표 설정은 PDF 문서 생성에 있어서 중요한 개념이므로, 유용하게 활용해보세요.

참고 자료