[Python] 파이썬으로 PDF 내용 추출하는 방법 – PyMuPDF(fitz) 활용
Python으로 PDF 파일을 자동 처리하고 싶을 때,
PyMuPDF(fitz)는 가장 강력하고 빠른 라이브러리 중 하나입니다.
텍스트 추출, 이미지 추출, 페이지 분리 등
문서 자동화 업무에 바로 활용할 수 있는 실용적인 기능을 제공합니다.
이 글에서는 PyMuPDF(fitz)를 이용해 PDF에서 텍스트를 추출하는 방법과
이미지 저장, 특정 페이지 추출 등 실무 예제를 함께 정리해드립니다.
✅ 1. PyMuPDF 설치 방법
pip install pymupdf
→ 설치하면 fitz
라는 이름으로 import해서 사용합니다.
✅ 2. PDF 전체 텍스트 추출하기
import fitz # PyMuPDF
doc = fitz.open("sample.pdf") # PDF 열기
for page in doc:
text = page.get_text()
print(text)
doc.close()
→ 페이지별로 반복하면서 텍스트 추출 가능
줄바꿈, 문단 유지도 비교적 잘 되는 편입니다.
✅ 3. 특정 페이지 텍스트 추출하기
page = doc.load_page(2) # 3번째 페이지 (0부터 시작)
text = page.get_text()
print(text)
→ 페이지 수가 많을 경우 필요한 페이지만 추출해서 성능 최적화 가능
✅ 4. PDF에서 이미지 추출하기
for page_number in range(len(doc)):
page = doc.load_page(page_number)
images = page.get_images(full=True)
for img_index, img in enumerate(images):
xref = img[0]
pix = fitz.Pixmap(doc, xref)
if pix.n < 5: # RGB
pix.save(f"page{page_number+1}_img{img_index+1}.png")
else: # CMYK → RGB 변환
pix = fitz.Pixmap(fitz.csRGB, pix)
pix.save(f"page{page_number+1}_img{img_index+1}.png")
→ 이미지가 포함된 PDF에서 내장 이미지 추출이 가능합니다.
스크린샷이 아닌 원본 이미지 그대로 추출됩니다.
✅ 5. 특정 페이지 추출해서 새로운 PDF 만들기
new_doc = fitz.open()
new_doc.insert_pdf(doc, from_page=2, to_page=4) # 3~5페이지 복사
new_doc.save("extracted_pages.pdf")
new_doc.close()
→ 기존 PDF에서 특정 구간만 추출
✅ 6. 텍스트 위치 기반 추출 (고급 기능)
page = doc.load_page(0)
blocks = page.get_text("blocks") # (x0, y0, x1, y1, "text", block_no)
for block in blocks:
x0, y0, x1, y1, text, *_ = block
print(f"[{x0:.0f}, {y0:.0f}] - {text}")
→ 좌표 기반 텍스트 분석이 가능하므로 표 추출, 영역 지정 추출 등의 커스텀 처리가 가능합니다.
📌 마무리
PyMuPDF(fitz)
는 단순한 PDF 읽기를 넘어서
텍스트 추출, 이미지 저장, 페이지 조작까지 지원하는 강력한 도구입니다.
보고서 자동화, 문서 검수, 데이터 수집 등에
바로 활용할 수 있는 실무 유틸리티로 추천드립니다 😊
도움이 되셨다면 공감 / 댓글 부탁드립니다!
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 내 컴퓨터 중복 파일 찾기 – 해시값 비교로 이미지/문서 정리하기 (2) | 2025.03.28 |
---|---|
[Python] 나만의 명언 봇 만들기 – JSON으로 랜덤 출력하기 (2) | 2025.03.28 |
[python] FastAPI에서 async/await으로 비동기 API 만들기 - 느린 작업도 빠르게 처리하기 (0) | 2025.03.20 |
FastAPI에서 POST 요청 처리하기 - 사용자 입력 데이터 받기 예제 (0) | 2025.03.20 |
FastAPI로 빠르고 간단한 파이썬 API 서버 만들기 - 설치부터 기본 예제까지 (0) | 2025.03.20 |