PDF 처리 가이드
Python 라이브러리
- pypdf: 병합(
PdfWriter.add_page()), 분할, 회전, 메타데이터, 암호화(writer.encrypt()), 워터마크(page.merge_page()) - pdfplumber: 텍스트 추출(
page.extract_text()), 테이블 추출(page.extract_tables()→ pandas) - reportlab: PDF 생성(단순 Canvas, 다중 페이지 Platypus/SimpleDocTemplate)
- pytesseract + pdf2image: 스캔된 PDF OCR(
convert_from_path()→image_to_string())
CLI 도구
pdftotext(poppler): 텍스트 추출,-layout옵션으로 레이아웃 유지qpdf: 병합(qpdf --empty --pages), 분할, 회전, 복호화pdftk: 병합, 분할(burst), 회전
빠른 참조
| 작업 | 최적 도구 | 주요 API |
|---|---|---|
| 텍스트 추출 | pdfplumber | page.extract_text() |
| 테이블 추출 | pdfplumber | page.extract_tables() → DataFrame |
| 병합 | pypdf | PdfWriter().add_page() |
| 분할 | pypdf | reader.pages 반복 |
| 생성 | reportlab | SimpleDocTemplate / Canvas |
| OCR | pytesseract | convert_from_path() → image_to_string() |
| 워터마크 | pypdf | page.merge_page() |
| 암호 | pypdf | writer.encrypt() |
사용자 요청
$ARGUMENTS