ReportLab은 Python에 대한 강력하고 유연한 PDF 생성 라이브러리입니다. 이 라이브러리를 사용하면 Python 코드를 사용하여 다양한 형식의 문서를 만들 수 있습니다. 이번에는 ReportLab을 사용하여 페이지 레이아웃을 만드는 방법에 대해 알아보겠습니다.
페이지 크기 설정하기
ReportLab에서 페이지 크기를 설정하기 위해서는 canvas.setPageSize()
메서드를 사용합니다. 다음은 A4 크기의 페이지를 만드는 예시입니다:
from reportlab.pdfgen.canvas import Canvas
width, height = 595, 842
canvas = Canvas("output.pdf", pagesize=(width, height))
canvas.setPageSize((width, height))
페이지 여백 설정하기
페이지 여백을 설정하려면 canvas.setMargins()
메서드를 사용합니다. 다음은 1인치의 여백을 설정하는 예시입니다:
left_margin = 72
right_margin = 72
top_margin = 72
bottom_margin = 72
canvas.setMargins(left_margin, right_margin, top_margin, bottom_margin)
페이지 헤더와 푸터 추가하기
ReportLab을 사용하여 페이지 헤더와 푸터를 추가하려면 canvas.showPage()
메서드로 페이지를 생성한 후에 canvas.drawString()
메서드를 사용하여 원하는 위치에 텍스트를 추가합니다. 다음은 페이지 상단 좌측에 “헤더”라는 텍스트를 추가하는 예시입니다:
header_text = "헤더"
canvas.showPage()
canvas.setFont("Helvetica", 12)
canvas.drawString(left_margin, height - top_margin + 20, header_text)
페이지 번호 추가하기
ReportLab을 사용하여 페이지 번호를 추가하려면 canvas.getPageNumber()
메서드를 사용하여 현재 페이지 번호를 가져온 후에 canvas.drawString()
메서드를 사용하여 페이지 번호를 추가합니다. 다음은 페이지 하단 가운데에 페이지 번호를 추가하는 예시입니다:
page_number = canvas.getPageNumber()
footer_text = f"페이지 번호: {page_number}"
canvas.setFont("Helvetica", 10)
canvas.drawString(width / 2, bottom_margin - 20, footer_text)
결과 출력하기
생성한 페이지 레이아웃을 출력하려면 canvas.save()
메서드를 사용하여 PDF 파일로 저장합니다:
canvas.save()
이제 위의 예시 코드를 참조하여 ReportLab을 사용하여 페이지 레이아웃을 만들 수 있습니다. 자세한 내용은 ReportLab 공식 문서를 참조하시기 바랍니다.
참고 자료
- ReportLab 공식 문서: https://www.reportlab.com/documentation/
- ReportLab 예제 코드: https://bitbucket.org/rptlab/reportlab/src/default/samples/