ai-embedder-engine/pdf_text.py

17 lines
614 B
Python

from typing import List, Tuple
from pypdf import PdfReader
def extract_text_from_pdf(pdf_path: str) -> Tuple[str, int]:
"""Extract text and return (text, total_pages)."""
reader = PdfReader(pdf_path)
texts: List[str] = []
total = len(reader.pages)
for i, page in enumerate(reader.pages, start=1):
print(f"[INFO] Extracting text from page {i}/{total}...")
try:
txt = page.extract_text() or ""
except Exception as e:
print(f"[WARN] Failed to extract page {i}: {e}")
txt = ""
texts.append(txt)
return "\n".join(texts), total