from pathlib import Path
from pypdf import PdfReader

def extract_text_by_pages(pdf_path: Path, max_pages: int | None = None) -> str:
    pdf_path = Path(pdf_path)
    reader = PdfReader(str(pdf_path))
    pages = reader.pages if max_pages is None else reader.pages[:max_pages]
    text_parts = []
    for p in pages:
        try:
            text_parts.append(p.extract_text() or "")
        except Exception:
            text_parts.append("")  # failsafe bei exotischen Seiten
    return "\n".join(text_parts)
