17 lines
614 B
Python
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 |