PDF는 인쇄·공유에 특화된 형식이라 데이터 추출이 까다롭습니다.
하지만 파이썬에는 좋은 도구가 여러 개 있어 텍스트·표 추출·페이지 병합·분할까지 가능합니다.
텍스트 추출 — pdfplumber.
import pdfplumber.
with pdfplumber.open("doc.pdf") as pdf: for page in pdf.pages: print(page.extract_text()).
표는 page.extract_tables()로.
영문 PDF는 거의 완벽, 한국어는 폰트 따라 결과 다름.
페이지 조작 — pypdf.
from pypdf import PdfReader, PdfWriter.
reader = PdfReader("in.pdf").
writer = PdfWriter().
writer.add_page(reader.pages[0]) — 페이지 골라 합치기.
writer.write("out.pdf").
분할·병합·암호 설정.
PDF 생성 — reportlab.
가장 강력하지만 학습 곡선 있음.
텍스트·이미지·도형·표를 코드로 그려 PDF 생성.
자동 보고서·청구서·인증서 생성에 자주 사용.
이미지 추출 — fitz(PyMuPDF).
가장 빠르고 강력한 PDF 라이브러리.
텍스트·이미지·메타데이터 모두 가능.
단, 라이선스가 AGPL이라 상용에서는 주의.
학습·내부 도구는 자유롭게 사용 가능.
한 줄 요약
PDF 처리는 pdfplumber(텍스트·표 추출), pypdf(페이지 조작), reportlab(생성), PyMuPDF(빠른 종합)로 영역 분담.
한국어는 폰트 따라 결과 차이.
더 알아볼 것
- pdfminer.six — 저수준 PDF 파서
- OCR이 필요한 스캔 PDF — pytesseract
- PDF 폼 채우기 — pdfrw