این آموزش گام به گام به شما نشان می دهد که چگونه متن را از PDF اسکن شده در سی شارپ استخراج کنید. هنگامی که اسناد را در یک PDF اسکن می کنید، آن صفحات به عنوان تصاویر اسکن شده در فایل PDF اضافه می شوند. بنابراین برای استخراج متن از فایل PDF اسکن شده، در واقع باید با استفاده از تشخیص کاراکتر نوری (OCR) متن را از تصاویر در PDF در سی شارپ استخراج کنید.
مراحل استخراج متن از PDF اسکن شده در سی شارپ
- Aspose.OCR for .NET را از مدیر بسته NuGet.org دریافت کنید
- افزودن مرجع به Aspose.OCR namespace
- کد مجوز را با استفاده از روش SetLicense اعمال کنید
- نمونه ای از کلاس AsposeOcr را راه اندازی کنید
- با استفاده از DocumentRecognitionSettings class تنظیمات تشخیص را مشخص کنید
- تمام صفحات PDF را با استفاده از روش RecognizePDF استخراج کنید
- با استفاده از ویژگی RecognitionText، متن را از هر صفحه PDF دریافت کنید
با کمک مراحل بالا می توانید متن را از PDF اسکن شده در سی شارپ به سرعت و به راحتی بخوانید. قبلاً نحوه استخراج متن از تصویر در سی شارپ را به شما نشان دادیم. با این حال، این مثال به شما کمک می کند متنی را از PDF در سی شارپ دریافت کنید.
کد برای استخراج متن از PDF اسکن شده در سی شارپ
using System; | |
using System.Collections.Generic; | |
//Use following namespace to extract text from scanned PDF | |
using Aspose.OCR; | |
namespace ExtractTextFromScannedPDFFile | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
//Set license before extracting text from scanned PDF file | |
Aspose.OCR.License AsposeOCRLicense = new Aspose.OCR.License(); | |
AsposeOCRLicense.SetLicense(@"c:\asposelicense\license.lic"); | |
//create AsposeOcr object | |
AsposeOcr ScannedPDFFile = new AsposeOcr(); | |
//set recognition settings | |
DocumentRecognitionSettings RecognitionSettings = new DocumentRecognitionSettings(); | |
RecognitionSettings.StartPage = 1; | |
RecognitionSettings.PagesNumber = 3; | |
//when set true, improves accuracy but reduces speed | |
RecognitionSettings.DetectAreas = false; | |
//extract text from specified pages | |
List<RecognitionResult> ExtractedResults = ScannedPDFFile.RecognizePdf("InputScannedPDFFile.pdf", RecognitionSettings); | |
//fetch extracted text of each page | |
int PageCounter = 1; | |
foreach(RecognitionResult SinglePage in ExtractedResults) | |
{ | |
Console.WriteLine("Page: {0}, Extracted Text:{1}", PageCounter, SinglePage.RecognitionText); | |
PageCounter++; | |
} | |
} | |
} | |
} |
دریافت متن سی شارپ بالا از مثال PDF ساده و قابل درک است. ما به سادگی یک فایل PDF اسکن شده را می خوانیم و سپس متن را از هر صفحه استخراج می کنیم. با این حال، یک نکته مهم برای درک در اینجا ویژگی DetectArea است. اگر آن را روی true تنظیم کنید، دقت بیشتری در اختیار شما قرار می دهد اما سرعت پردازش PDF را کاهش می دهد. با این حال، با تنظیم آن بر روی false، سرعت بهبود می یابد و ممکن است دقت کمی کاهش یابد. بنابراین شما باید بر اساس شرایط خود از بین این دو گزینه یکی را انتخاب کنید.