[python] ReportLab 페이지 번호 추가

ReportLab은 파이썬으로 PDF 문서를 생성하는 데 사용되는 강력한 라이브러리입니다. 이 라이브러리를 사용하여 PDF에 페이지 번호를 추가하는 방법을 알아보겠습니다.

ReportLab 설치

먼저, ReportLab을 설치해야 합니다. 아래 명령을 사용하여 파이썬 패키지 관리자인 pip를 사용하여 ReportLab을 설치합니다.

pip install reportlab

페이지 번호 추가하기

ReportLab을 사용하여 PDF에 페이지 번호를 추가하려면 다음 단계를 따라야 합니다.

  1. ReportLab 라이브러리를 가져옵니다.
    from reportlab.pdfgen import canvas
    
  2. PDF 문서를 만듭니다.
    pdf = canvas.Canvas("example.pdf")
    
  3. 페이지 번호를 추가합니다. drawString() 메서드를 사용하여 문서의 특정 위치에 페이지 번호를 작성합니다. ```python def add_page_number(canvas, doc): canvas.saveState() canvas.setFont(‘Helvetica’, 10) canvas.drawString(570, 10, “Page %d” % doc.page) canvas.restoreState()

pdf.addPageCallback(add_page_number)

위의 코드에서 `add_page_number` 함수는 페이지 번호를 추가하기 위한 콜백 함수입니다. `drawString` 메서드를 사용하여 원하는 위치에 페이지 번호를 작성합니다. 위의 예제에서는 오른쪽 하단에 페이지 번호를 추가하였습니다.

4. 문서를 저장하고 종료합니다.
```python
pdf.showPage()
pdf.save()

페이지 번호를 추가한 후에는 pdf.showPage()를 호출하여 현재 페이지를 보여주고, pdf.save()를 호출하여 PDF 문서를 저장합니다.

완성된 코드

아래는 ReportLab을 사용하여 페이지 번호를 추가하는 완성된 예제 코드입니다.

from reportlab.pdfgen import canvas

def add_page_number(canvas, doc):
    canvas.saveState()
    canvas.setFont('Helvetica', 10)
    canvas.drawString(570, 10, "Page %d" % doc.page)
    canvas.restoreState()

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

# 페이지 내용 작성
pdf.setFont('Helvetica', 12)
pdf.drawString(100, 700, "첫 번째 페이지")

pdf.showPage()
pdf.save()

위의 코드를 실행하면 “example.pdf”라는 이름의 PDF 파일이 생성됩니다. 파일을 열어 페이지 번호가 추가되었는지 확인할 수 있습니다.

결론

ReportLab을 사용하여 파이썬으로 PDF 문서를 생성할 때 페이지 번호를 추가하는 방법을 알아보았습니다. 이를 활용하면 더 유연하고 전문적인 PDF 문서를 생성할 수 있습니다. ReportLab의 다양한 기능과 속성을 활용하여 필요에 맞는 PDF 문서를 만들어보세요.

참고 자료