Как да извлечете текст от сканиран 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 Class
  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, скоростта ще се подобри и точността може да бъде малко намалена. Така че трябва да изберете между двете опции въз основа на вашата ситуация.

 Български