پشتیبانی دو حالته
برای PDFهای متنمحور از استخراج متنی و برای PDFهای تصویرمحور از OCR استفاده میکند.
مخزن باز · Python · FastAPI

سرویس REST برای استخراج متن از فایلهای PDF: اگر PDF متن داشته باشد، مستقیم استخراج میکند؛ اگر تصویر-محور باشد، صفحات را به تصویر تبدیل کرده و OCR انجام میدهد.
خیلی از PDFها متن واقعی ندارند (اسکن/عکس هستند). `PDF Text Extractor` با تشخیص نوع PDF، بین استخراج متنی و OCR یکی را انتخاب میکند تا نتیجه قابل استفاده باشد.
خروجی سرویس ساختاریافته است: متن هر صفحه همراه با `combined_text` (همه متنها به هم چسبیده) برمیگردد تا در موتورهای جستجو، RAG، یا پردازشهای خودکار استفاده کنید.
این سرویس فقط استخراج میکند؛ تصمیمگیری درباره «بعدش چه کنیم» با اپلیکیشن شماست (مثلاً ذخیره در دیتابیس، ایندکس کردن، یا ارسال به مدلهای زبانی).
مناسب استفاده به عنوان یک ماژول API در پروژههای نرمافزاری.
برای PDFهای متنمحور از استخراج متنی و برای PDFهای تصویرمحور از OCR استفاده میکند.
متن هر صفحه با `page_number` برمیگردد تا بتوانید ساختار سند را حفظ کنید.
همه متنها در `combined_text` جمع میشوند تا سریع وارد pipelineهای دیگر شوید.
دو endpoint اصلی: `GET /health` و `POST /extract-text` با `multipart/form-data`.
قابل اجرا به شکل کانتینر (با راهنمای Docker در README) برای production و محیطهای توسعه.
برای OCR از Tesseract و برای تبدیل PDF به تصویر از Poppler استفاده میشود (طبق README).
از نصب تا اولین استخراج متن
روی سیستم یا کانتینر، Tesseract OCR و Poppler نصب شود (طبق README). سپس Python dependencies را با `pip install -r requirements.txt` آماده کنید.
سرویس را با `uvicorn main_alternative:app --host 0.0.0.0 --port 8000` (یا نسخه اصلی) اجرا کنید. قبل از ترافیک واقعی با `GET /health` مطمئن شوید بالا آمده است.
با HTTP client خود فایل PDF را در قالب `multipart/form-data` به `POST /extract-text` ارسال کنید. در README نمونه `curl` هم وجود دارد.
در پاسخ، متن صفحهبهصفحه و `combined_text` دریافت میکنید؛ سپس میتوانید آن را برای جستجو/نمایش/تحلیل یا ارسال به پروژههای هوش مصنوعی استفاده کنید.
این سرویس را به عنوان یک ماژول API پشت reverse proxy یا در شبکه داخلی deploy کنید، و در سیستم خودتان cache/retry مناسب اضافه نمایید.
آنچه باید برای کال کردن سرویس بدانید
پورت پیشفرض در README: 8000
GET /healthPOST /extract-textساختار پاسخ برای استفاده در pipeline شما
{ pages: [{ page_number, text }], combined_text, total_pages }مطابق راهنمای Docker در README مخزن
docker-compose up --buildمخزن و مستندات کامل
سورس، Dockerfile/Compose و README با نمونههای API.
https://github.com/mbasirmajd/rmshub-pdf2text