نحوه کار با 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) ساخته میشود و فقط فایلهای آن نوع را میپذیرد.