[python] ReportLab 캔버스 회전

ReportLab은 Python에서 PDF 문서를 생성하기 위한 강력한 라이브러리입니다. 여기서는 ReportLab의 Canvas 객체를 회전하는 방법에 대해 알아보겠습니다.

캔버스 회전하기

ReportLab의 Canvas 객체를 회전하기 위해서는 rotate(angle) 메서드를 사용합니다. 이 메서드는 현재 좌표 시스템을 기준으로 주어진 각도만큼 캔버스를 회전시킵니다.

from reportlab.pdfgen import canvas

def create_rotated_pdf():
    c = canvas.Canvas("rotated.pdf")
    c.rotate(45)  # 45도 회전
    
    c.drawString(100, 100, "Hello, World!")  # 회전한 상태에서 텍스트 추가
    
    c.rotate(-45)  # 원래 상태로 회전 복구
    c.drawString(400, 400, "Back to normal")
    
    c.save()

create_rotated_pdf()

위 예제에서는 Canvas 객체를 생성한 후에 rotate() 메서드를 사용하여 45도로 캔버스를 회전시킨 후, 회전된 상태에서 텍스트를 추가합니다. 마지막으로 다시 -45도로 회전하여 원래 상태로 복구합니다.

주의사항

캔버스를 회전시키면 그 위에 있는 모든 그래픽 요소들도 함께 회전됩니다. 따라서 회전된 캔버스 상에서 좌표계를 정확하게 계산해야합니다. 또한 회전된 캔버스에서 텍스트의 폰트도 회전되기 때문에 글씨가 기울어져 보일 수 있습니다. 이러한 점을 유의하여 작업하시면 됩니다.

결론

ReportLab의 Canvas 객체를 회전시키는 방법에 대해 알아보았습니다. 이를 활용하면 다양한 형태의 PDF 문서를 생성할 수 있습니다. 캔버스 회전은 특정 문서 또는 요소에 특별한 효과를 줄 수 있으므로 유용하게 활용할 수 있습니다.

참고 자료