# core/pdf_loader.py """PDF 텍스트 추출""" import pymupdf4llm import fitz # PyMuPDF from typing import Dict, List def load_pdf(pdf_path: str) -> Dict: """ PDF 파일 로드 및 텍스트 추출 Args: pdf_path: PDF 파일 경로 Returns: Dict: { "text": "전체 텍스트", "pages": [ {"page_num": 1, "text": "..."}, ... ] } """ print(f"📄 PDF 로드 중: {pdf_path}") # pymupdf4llm으로 텍스트 추출 (markdown 형식) md_text = pymupdf4llm.to_markdown(pdf_path) # 페이지별로 분리 doc = fitz.open(pdf_path) pages = [] for page_num, page in enumerate(doc, start=1): page_text = page.get_text() pages.append({ "page_num": page_num, "text": page_text }) doc.close() print(f"✅ {len(pages)}페이지 추출 완료") return { "text": md_text, "pages": pages, "total_pages": len(pages) } if __name__ == "__main__": # 테스트 import sys if len(sys.argv) > 1: result = load_pdf(sys.argv[1]) print(f"총 페이지: {result['total_pages']}") print(f"첫 페이지 미리보기: {result['pages'][0]['text'][:200]}")