يوضح لك هذا البرنامج التعليمي خطوة بخطوة كيفية استخراج النص من الممسوح ضوئيًا PDF في C#. عندما تقوم بمسح المستندات ضوئيًا وتحويلها إلى ملف PDF ، تتم إضافة تلك الصفحات كصور ممسوحة ضوئيًا داخل ملف PDF. لذلك من أجل استخراج النص من ملف PDF الممسوح ضوئيًا ، سيتعين عليك في الواقع استخراج النص من الصور في ملف PDF في C# عن طريق تطبيق التعرف الضوئي على الأحرف (OCR).
خطوات استخراج النص من ملف PDF الممسوح ضوئيًا في C#
- احصل على Aspose.OCR for .NET من مدير الحزم NuGet.org
- أضف مرجعًا إلى Aspose.OCR namespace
- تطبيق كود الترخيص باستخدام طريقة SetLicense
- بدء مثيل من فئة AsposeOcr
- حدد إعدادات التعرف باستخدام DocumentRecognitionSettings class
- قم باستخراج جميع صفحات PDF باستخدام طريقة RecognizePDF
- احصل على نص من كل صفحة PDF باستخدام خاصية RecognitionText
بمساعدة الخطوات المذكورة أعلاه ، يمكنك قراءة النص من ملف PDF الممسوح ضوئيًا في C# بسرعة وسهولة. في وقت سابق ، أوضحنا لك كيفية استخراج النص من الصورة في C#. ومع ذلك ، يساعدك هذا المثال في الحصول على نص من PDF في C#.
رمز لاستخراج النص من ملف PDF الممسوح ضوئيًا في C#
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++; | |
} | |
} | |
} | |
} |
مثال C# للحصول على نص من ملف PDF بسيط وسهل الفهم. نحن نقرأ ببساطة ملف PDF ممسوحًا ضوئيًا ثم نستخرج النص من كل صفحة. ومع ذلك ، هناك نقطة مهمة يجب فهمها هنا وهي خاصية DetectArea. إذا قمت بضبطه على صحيح ، فسيوفر لك مزيدًا من الدقة ولكنه سيقلل من سرعة معالجة ملف PDF. ومع ذلك ، من خلال تعيينه على “خطأ” ، ستتحسن السرعة وقد تقل الدقة قليلاً. لذلك عليك أن تختار بين الخيارين بناءً على حالتك.