이번 시간에는 파이썬으로 PDF 파일을 자동으로 만드는 프로그램을 만들어 보겠습니다.
PDF는 보고서, 안내문, 영수증, 학습 자료처럼 내용을 깔끔하게 저장할 때 많이 사용하는 파일입니다.
파이썬에서는 reportlab 라이브러리를 사용하면 PDF 파일을 쉽게 만들 수 있습니다.
1. 필요한 라이브러리 설치하기
먼저 터미널 또는 명령 프롬프트에서 아래 명령어를 입력합니다.
pip install reportlab
py -버전 -m pip install reportlab
py -3.14 -m pip install reportlab
2. PDF 자동 생성기 전체 코드
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import os
# PDF 파일 이름
pdf_file = "report.pdf"
# A4 용지 크기 가져오기
width, height = A4
# PDF 만들기 시작
pdf = canvas.Canvas(pdf_file, pagesize=A4)
# 한글 폰트 등록
# 윈도우 기본 맑은 고딕 폰트 사용
font_path = "C:/Windows/Fonts/malgun.ttf"
if os.path.exists(font_path):
pdfmetrics.registerFont(TTFont("Malgun", font_path))
pdf.setFont("Malgun", 16)
else:
pdf.setFont("Helvetica", 16)
# 제목 작성
pdf.drawString(50, height - 50, "PDF 자동 생성 보고서")
# 글자 크기 변경
if os.path.exists(font_path):
pdf.setFont("Malgun", 12)
else:
pdf.setFont("Helvetica", 12)
# 내용 작성
pdf.drawString(50, height - 100, "이 파일은 파이썬으로 자동 생성된 PDF입니다.")
pdf.drawString(50, height - 130, "reportlab 라이브러리를 사용하면 PDF 문서를 만들 수 있습니다.")
pdf.drawString(50, height - 160, "보고서, 안내문, 학습 자료 등을 자동으로 만들 때 유용합니다.")
# 구분선 그리기
pdf.line(50, height - 190, width - 50, height - 190)
# 표처럼 보이는 내용 작성
pdf.drawString(50, height - 230, "이름")
pdf.drawString(150, height - 230, "점수")
pdf.drawString(250, height - 230, "결과")
pdf.drawString(50, height - 260, "철수")
pdf.drawString(150, height - 260, "90")
pdf.drawString(250, height - 260, "합격")
pdf.drawString(50, height - 290, "영희")
pdf.drawString(150, height - 290, "85")
pdf.drawString(250, height - 290, "합격")
pdf.drawString(50, height - 320, "민수")
pdf.drawString(150, height - 320, "70")
pdf.drawString(250, height - 320, "통과")
# 하단 문구
pdf.drawString(50, 80, "PDF 생성 완료!")
# PDF 저장
pdf.save()
print("PDF 파일이 생성되었습니다:", pdf_file)
3. 실행 결과
프로그램을 실행하면 같은 폴더에 아래 파일이 만들어집니다.
report.pdf
PDF 파일을 열어 보면 제목, 설명 문장, 간단한 표 내용이 들어 있습니다.
4. 소스 코드 설명
1) PDF 라이브러리 불러오기
from reportlab.pdfgen import canvas
canvas는 PDF 종이라고 생각하면 됩니다.
우리가 종이에 글씨를 쓰고 선을 그리듯이, PDF 위에 글자와 선을 넣을 수 있습니다.
2) A4 용지 크기 정하기
from reportlab.lib.pagesizes import A4
width, height = A4
PDF 용지를 A4 크기로 설정합니다.
width는 종이의 가로 길이이고, height는 세로 길이입니다.
3) PDF 파일 만들기 시작
pdf = canvas.Canvas(pdf_file, pagesize=A4)
새 PDF 파일을 만들 준비를 합니다.
여기서는 report.pdf라는 이름의 PDF 파일을 만들게 됩니다.
4) 한글 폰트 등록하기
font_path = "C:/Windows/Fonts/malgun.ttf"
PDF에서 한글을 쓰려면 한글 폰트가 필요합니다.
윈도우에는 기본적으로 맑은 고딕 폰트가 있어서 이 폰트를 사용했습니다.
5) 글씨 쓰기
pdf.drawString(50, height - 50, "PDF 자동 생성 보고서")
PDF에 글씨를 씁니다.
여기서 50은 왼쪽에서 떨어진 거리이고, height - 50은 위쪽에서 떨어진 위치라고 생각하면 됩니다.
6) 선 그리기
pdf.line(50, height - 190, width - 50, height - 190)
PDF에 선을 그립니다.
보고서에서 내용을 구분할 때 사용할 수 있습니다.
7) PDF 저장하기
pdf.save()
마지막에 save()를 실행해야 PDF 파일이 진짜로 저장됩니다.
이 코드를 빼면 PDF 파일이 제대로 만들어지지 않습니다.
7. 이런 곳에 활용할 수 있어요
- 자동 보고서 만들기
- 성적표 만들기
- 영수증 만들기
- 안내문 만들기
- 학습 자료 만들기
- 출석부 만들기
- 주문 내역서 만들기
8. 마무리
이번 Chapter 27에서는 파이썬으로 PDF 파일을 자동 생성하는 방법을 배웠습니다.
PDF 자동 생성 기능을 사용하면 반복해서 작성해야 하는 문서를 훨씬 편하게 만들 수 있습니다.
다음에는 엑셀 데이터나 CSV 데이터를 읽어서 자동으로 PDF 보고서를 만드는 프로그램으로 발전시킬 수도 있습니다.
PDF 자동 생성기 동작 구조도

'강의 > Python 기초' 카테고리의 다른 글
| Chapter 29. 웹사이트 데이터 수집기 (0) | 2026.06.15 |
|---|---|
| Chapter 28. 이메일 자동 발송기 (0) | 2026.06.15 |
| Chapter 26. 엑셀 자동 보고서 생성기 만들기 (0) | 2026.06.15 |
| Chapter 25. 파일 자동 정리 프로그램 만들기 (0) | 2026.06.15 |
| Chapter 24. 파일 탐색기 만들기 (0) | 2026.06.13 |