النواة API

النواة API

تغطي هذه الصفحة دورة حياة الكائن وسلوك الاستثناءات لأربعة الأنواع الأساسية: AsposeOcr، OcrInput، OcrOutput، وRecognitionResult.


دورة حياة OcrInput

OcrInput يطبق IDisposable ويجب إنشاؤه في بيان using. يأخذ المُنشئ الخاص به InputType (InputType.SingleImage أو InputType.PDF)، وOcrInput.Add(string) يضيف مسار ملف واحد في كل مرة — يمكن لنفس مثال OcrInput أن يحتوي على ملفات متعددة من نفس نوع الإدخال.

using Aspose.OCR;

using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");

التعرف على OcrOutput وقراءته

AsposeOcr.Recognize(OcrInput) تُعيد OcrOutput، وهو List<RecognitionResult> — يمكن فهرسته مثل أي قائمة، مع RecognitionResult واحد لكل صورة (بالنسبة إلى InputType.SingleImage، واحد لكل ملف مضاف) أو لكل صفحة PDF (بالنسبة إلى InputType.PDF).

var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];

RecognitionResult والنوع المتداخل LinesResult

RecognitionResult.LinesResult هي فئة متداخلة — اشير إليها كـ RecognitionResult.LinesResult، وليس كنوع مستقل. كل RecognitionResult تُظهر:

  • RecognitionText — النص المعترف به بالكامل لتلك الصورة أو الصفحة، مع دمج الأسطر بفواصل سطرية.
  • RecognitionLinesResult — List<RecognitionResult.LinesResult>، مدخل واحد لكل سطر نص مكتشف، يحتوي كل منها على TextInLine (نص السطر) وLine (System.Drawing.Rectangle الذي يحدد إحداثيات بكسل ذلك السطر في الصورة المصدر).
RecognitionResult result = output[0];
Console.WriteLine(result.RecognitionText);

foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
    System.Drawing.Rectangle bounds = line.Line;
    Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}

استثناءات

AsposeOcr.Recognize(OcrInput) يتحقق من صحة مدخلاته قبل تشغيل التعرف:

ConditionException
input هو nullArgumentNullException
input’s InputType ليس SingleImage أو PDFNotSupportedException
المسار المضاف عبر OcrInput.Add() غير موجود على القرصFileNotFoundException

تُجرى هذه الفحوصات قبل أي استدلال للنموذج، لذا ففشل المدخل السيئ يحدث فوراً بدلاً من بعد مرور جزئي للتعرف.


نصائح وأفضل الممارسات

  • OcrOutput فارغ (Count == 0) إذا لم يضيف OcrInput أي ملفات — تحقق من Count قبل الفهرسة.
  • RecognitionResult.LinesResult متداخلة داخل RecognitionResult؛ اسم النوع على المستوى الأعلى LinesResult بمفرده ليس نوعًا يمكن حله خارج ذلك التداخل.

مشكلات شائعة

مشكلةسببإصلاح
ArgumentNullException على Recognize()تم تمرير null بدلاً من OcrInputدائمًا أنشئ OcrInput قبل استدعاء Recognize()
NotSupportedException على Recognize()تم إنشاء OcrInput بنوع إدخال غير SingleImage/PDFفقط InputType.SingleImage و InputType.PDF صالحة
FileNotFoundException على Recognize()المسار في قائمة الانتظار غير موجودتحقق من صحة مسارات الملفات قبل استدعاء OcrInput.Add()

FAQ

هل RecognitionResult.LinesResult فئة مستقلة على المستوى الأعلى؟

لا — هي متداخلة داخل RecognitionResult. أشر إليها كـ RecognitionResult.LinesResult.

هل يضمن OcrOutput ترتيب الصفحات لملفات PDF؟

نعم — بالنسبة إلى InputType.PDF، تُعيد OcrOutput RecognitionResult واحدًا لكل صفحة بترتيب المصدر.

ماذا يحدث إذا استدعيت Recognize() مع OcrInput فارغ؟

إنّه يُعيد OcrOutput مع Count == 0 بدلاً من الرمي.


ملخص API Reference

الصنف/الطريقةوصف
AsposeOcr.Recognize(OcrInput)يُتحقق ويُعرّف؛ يرمي ArgumentNullException، NotSupportedException أو FileNotFoundException عند الإدخال غير صالح
OcrInput.OcrInput(InputType)يُنشئ حاوية إدخال لنوع إدخال واحد
OcrInput.Add(string)يُضيف مسار ملف إلى قائمة الانتظار
OcrInput.Dispose()يطلق الموارد (عبر IDisposable)
OcrOutputList<RecognitionResult> تم إرجاعه بواسطة Recognize()
RecognitionResult.RecognitionTextالنص الكامل المعترف به لصورة/صفحة واحدة
RecognitionResult.RecognitionLinesResultList<RecognitionResult.LinesResult>
RecognitionResult.LinesResult.TextInLineالنص المعترف به لسطر واحد
RecognitionResult.LinesResult.LineSystem.Drawing.Rectangle مربع الإحاطة لسطر واحد

انظر أيضاً

 العربية