from fastapi import FastAPI, File, UploadFile import fitz # PyMuPDF import uvicorn app = FastAPI() @app.post("/extract-text") async def extract_text(file: UploadFile = File(...)): try: contents = await file.read() doc = fitz.open(stream=contents, filetype="pdf") extracted_text = "" for i, page in enumerate(doc): extracted_text += f"\n\n--- Page {i + 1} ---\n\n" + page.get_text() return {"filename": file.filename, "text": extracted_text} except Exception as e: return {"error": str(e)}