Як витягти текст зі сканованого PDF-файлу на C#

У цьому покроковому посібнику показано, як витягнути текст із відсканованого PDF у C#. Коли ви скануєте документи в PDF, ці сторінки додаються як відскановані зображення в PDF-файл. Отже, щоб отримати текст із відсканованого файлу PDF, вам доведеться витягнути текст із зображень у PDF на C#, застосувавши оптичне розпізнавання символів (OCR).

Кроки для вилучення тексту зі сканованого PDF-файлу на C#

  1. Отримайте Aspose.OCR for .NET із менеджера пакетів NuGet.org
  2. Додайте посилання на Aspose.OCR namespace
  3. Застосуйте код ліцензії за допомогою методу SetLicense
  4. Ініціювати екземпляр класу AsposeOcr
  5. Укажіть параметри розпізнавання за допомогою DocumentRecognitionSettings class
  6. Витягніть усі сторінки PDF за допомогою методу RecognizePDF
  7. Отримайте текст із кожної сторінки 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. Якщо ви встановите значення true, це забезпечить більшу точність, але зменшить швидкість обробки PDF. Однак, встановивши значення false, швидкість покращиться, а точність може трохи знизитися. Тож вам доведеться вибирати між двома варіантами залежно від вашої ситуації.

 Українська