import pathlib import sys import pdfplumber def main() -> None: if len(sys.argv) != 5: raise SystemExit("usage: extract_pdf_pages.py ") pdf_path = pathlib.Path(sys.argv[1]) start = int(sys.argv[2]) end = int(sys.argv[3]) output = pathlib.Path(sys.argv[4]) output.parent.mkdir(parents=True, exist_ok=True) chunks = [f"# Extracted PDF Pages\n\nSource: `{pdf_path}`\n\nPages: {start}-{end}\n"] with pdfplumber.open(str(pdf_path)) as pdf: for page_number in range(start, end + 1): page = pdf.pages[page_number - 1] text = page.extract_text(x_tolerance=1, y_tolerance=3) or "" chunks.append(f"\n\n## PDF Page {page_number}\n\n{text.strip()}\n") output.write_text("\n".join(chunks), encoding="utf-8") print(f"wrote {output}") if __name__ == "__main__": if hasattr(sys.stdout, "reconfigure"): sys.stdout.reconfigure(encoding="utf-8") main()