#!/usr/bin/env python3 """ Batch extract OCR text layer from PDF using PyMuPDF. Outputs per-page .txt files. Book: 科研費申請書の赤ペン添削ハンドブック 第3版 """ import fitz import os PDF_PATH = "pdf/科研費申請書の添削.pdf" OUTPUT_DIR = "raw_text" def main(): os.makedirs(OUTPUT_DIR, exist_ok=True) doc = fitz.open(PDF_PATH) print(f"PDF has {doc.page_count} pages") # Extract per-page text files (all pages) for page_num in range(doc.page_count): page = doc[page_num] text = page.get_text("text") out_file = os.path.join(OUTPUT_DIR, f"page_{page_num+1:04d}.txt") with open(out_file, "w", encoding="utf-8") as f: f.write(text) print(f"Extracted {doc.page_count} per-page text files") doc.close() print("Done!") if __name__ == "__main__": main()