كيفية العمل مع Aspose.OCR FOSS Core API في .NET

كيفية العمل مع Aspose.OCR FOSS Core API في .NET

يتعرف Aspose.OCR FOSS لـ .NET على النص في الصور النقطية ووثائق PDF من خلال نواة صغيرة API: AsposeOcr, OcrInput, OcrOutput, وRecognitionResult. يشرح هذا الدليل عملية تثبيت الحزمة واستخدام ذلك API النواة من البداية إلى النهاية.

دليل خطوة بخطوة

الخطوة 1: تثبيت الحزمة

dotnet add package Aspose.OCR.FOSS

الخطوة 2: استيراد مساحة الأسماء

أضف مساحة الأسماء Aspose.OCR إلى أي ملف مصدر يستدعي AsposeOcr أو OcrInput أو RecognitionResult:

using Aspose.OCR;

هذا النطاق المفرد يكشف عن AsposeOcr، OcrInput، OcrOutput، InputType، وRecognitionResult.


الخطوة 3: بناء OcrInput والتعرف على صورة

إنشاء AsposeOcr، بناء OcrInput باستخدام InputType.SingleImage، وضع ملف في الطابور باستخدام OcrInput.Add()، واستدعاء AsposeOcr.Recognize().

var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("scan.png");
RecognitionResult result = api.Recognize(input)[0];
Console.WriteLine(result.RecognitionText);

الخطوة 4: قراءة الأسطر الفردية ومربعات الإحاطة

كل إدخال RecognitionResult.LinesResult في RecognitionLinesResult يحتوي على نص السطر (TextInLine) ومربع الإحاطة بالإحداثيات البكسلية (Line).

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

الخطوة 5: التعرف على ملف PDF متعدد الصفحات

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

using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("document.pdf");
OcrOutput output = api.Recognize(pdfInput);

foreach (RecognitionResult page in output)
{
    Console.WriteLine(page.RecognitionText);
}

المشكلات الشائعة والحلول

NotSupportedException عند الاستدعاء Recognize(). ال OcrInput تم بناؤه بنوع إدخال غير InputType.SingleImage or InputType.PDF. فقط هذان النوعان من الإدخال مدعومان.

FileNotFoundException عند الاستدعاء Recognize(). مسار مضاف عبر OcrInput.Add() غير موجود على القرص. تحقق من صحة المسار قبل الاستدعاء Add().

ArgumentNullException عند الاستدعاء Recognize(). null تم تمريره بدلاً من OcrInput مثيل. دائمًا قم بإنشاء OcrInput أولاً.

Empty RecognitionLinesResult. لم يتم اكتشاف أي سطر نصي — تأكد من أن صورة المصدر تحتوي على نص واضح غير مائل ومكتوب بالأحرف اللاتينية.

الأسئلة المتكررة

هل OcrOutput يحافظ على ترتيب الملفات؟

نعم. OcrOutput هي قائمة من RecognitionResult، واحدة لكل صورة (أو لكل صفحة PDF)، بالترتيب الذي تمت إضافة الملفات به عبر OcrInput.Add().

هل أحتاج إلى التخلص من OcrInput؟

نعم — OcrInput يطبق IDisposable. استخدم بيان using أو استدعِ Dispose() صراحةً بمجرد اكتمال التعرف.

هل يمكنني معالجة كل من الصور وملفات PDF في نفس OcrInput؟

لا — كل OcrInput يُنشأ باستخدام InputType واحد (SingleImage أو PDF) ولا يقبل سوى الملفات من ذلك النوع.

انظر أيضاً

 العربية