* fix: make OCR portable and reliable * fix: harden OCR installation portability * fix: pin OCR partials across downloads * fix: make OCR execution reliably asynchronous * fix: harden OCR portability and docs routes * fix: preserve decoder and docs safeguards
5.8 KiB
description, i18n_output_hash, i18n_source_hash, i18n_provenance
| description | i18n_output_hash | i18n_source_hash | i18n_provenance |
|---|---|---|---|
| استخرج النص من ملفات PDF الممسوحة ضوئيًا محليًا باستخدام ميزة مدمجة Tesseract أو الدقة العالية الاختيارية RapidOCR وقت التشغيل. | 8a637d247049 | a19ba25a1ca8 | human |
PDF OCR
استخراج النص من الممسوحة ضوئيا PDF المستندات صفحة تلو الأخرى دون إرسال PDF إلى خدمة خارجية. المدمج في fast استخدامات الطبقة Tesseract. الاختياري balanced و best استخدام الطبقات RapidOCR مع مثبت PP-OCR موديلات اونكس.
::: info توافق OCR الكوري
يدعم Fast OCR اللغات auto وen وde وes وfr وzh وja، لكنه لا يدعم الكورية (ko). تتطلب الكورية حزمة OCR الدقيقة ومستوى balanced أو best. تعمل الحزمة على حاويات Linux amd64 وarm64 الرسمية، بما في ذلك مضيفات NVIDIA حيث يبقى OCR على CPU. تُرجع الأنظمة غير المدعومة خطأ توافق صريحاً ولا تعود بصمت إلى fast. كما يُرفض طلب Korean مع fast أو الاسم القديم tesseract قبل وضعه في قائمة الانتظار، مع FEATURE_INCOMPATIBLE والسبب fast-korean-unsupported.
:::
API Endpoint
POST /api/v1/tools/pdf/ocr-pdf
يقبل بيانات نموذج multipart تحتوي على ملف PDF وحقل settings اختياري بصيغة JSON.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| file | file | نعم | - | ملف PDF (متعدد الأجزاء)، مشفر حتى 512 MiB؛ ولا يزال الحد الأدنى للتحميل الخاص بالمشغل مطبقًا |
| quality | string | لا | متحرك | طبقة الجودة OCR: fast أو balanced أو best |
| language | string | No | "auto" |
لغة المستند: auto أو en أو de أو fr أو es أو zh أو ja أو ko |
| pages | string | No | "all" |
تحديد الصفحات، مثل "all" أو "1-3" أو "1,3,5" |
| enhance | boolean | لا | تعتمد على الطبقة | تحسين التباين المحلي قبل التعرف عليه. سريع يطبقه مباشرة؛ يحتفظ الخيار Balanced وBest بالمتغير فقط عندما يؤدي تسجيل المعايرة إلى تحسين النتيجة. الإعدادات الافتراضية هي true لـ best وfalse لـ fast/balanced |
| engine | string | لا | - | الاسم المستعار للتوافق مهمل. استخدم quality بدلاً من ذلك. يقوم tesseract بتعيين fast؛ يتم تعيين قيمة paddleocr القديمة إلى balanced ولكنها لا تقوم بتحميل PaddlePaddle |
عند حذف quality وengine، يختار SnapOtter أعلى مستوى متاح بالترتيب: best ثم balanced ثم fast. لا تختار اللغة الكورية fast أبداً؛ بل تستخدم best ثم balanced، أو تُرجع خطأ تثبيت أو توافق لوقت التشغيل الدقيق.
Example Request
curl -X POST http://localhost:1349/api/v1/tools/pdf/ocr-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@scanned.pdf" \
-F 'settings={"quality": "best", "language": "en", "pages": "1-5", "enhance": true}'
Example Response
يُعيد 202 Accepted. تتبّع التقدّم عبر SSE على /api/v1/jobs/{jobId}/progress.
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
Notes
- صيغة الإدخال المقبولة:
.pdf. fastتم بناؤه ويضيف حوالي 25 MiB إلى الصورة الرسمية.balancedوbestتتطلب دقة اختيارية OCR حزمة (حوالي 208-234 MiB للتحميل و409-488 MiB مثبتة، حسب الهدف).- تدعم الحزمة الدقيقة Linux amd64 و arm64 وتستخدم ONNX Runtime على CPU، بما في ذلك مضيفي NVIDIA.
- لا يتم أبدًا خفض المستوى المطلوب صراحةً بصمت. في حالة عدم توفر
balancedأوbest، تقوم API بإرجاع501معFEATURE_NOT_INSTALLEDأوFEATURE_INCOMPATIBLE. - يتم تنقيط صفحات PDF بدقة عالية قبل OCR. يقوم
bestبتشغيل نماذج PP-OCRv6 المتوسطة عالية الدقة ويسجل متغيرات التوجيه والتحسين، مما يعمل على تحسين التعرف على حساب السرعة. - يتيح إعداد اللغة
autoالتعرف عبر مجموعة البرامج النصية المدعومة؛ يمكن أن يؤدي التلميح الصريح إلى تحسين النتائج للغة مستند معروفة. - يمكنك استهداف صفحات محدّدة باستخدام النطاقات (
"1-3") أو القوائم المفصولة بفواصل ("1,3,5") أو"all"لكل صفحة. - يمكن معالجة الطلب على الأكثر 50 صفحة. تم تحديد الحد الأقصى لبيانات التسويد النقطية عند 512 MiB وتم تحديد الحد الأقصى لاستجابة UTF-8 OCR عند 1,000,000 بايت؛ تفشل المهام الزائدة عن الحد بدلاً من إرجاع نص جزئي.
- بالنسبة لملفات PDF التي تحتوي بالفعل على نص قابل للتحديد، فكّر في استخدام أداة PDF to Text الأسرع بدلاً من ذلك.