Този урок стъпка по стъпка ви показва как да извлечете текст от сканирани PDF в C#. Когато сканирате документи в PDF, тези страници се добавят като сканирани изображения в PDF файла. Така че, за да извлечете текст от сканирания PDF файл, всъщност ще трябва да извлечете текст от изображения в PDF в C#, като приложите оптично разпознаване на знаци (OCR).
Стъпки за извличане на текст от сканиран PDF в C#
- Вземете Aspose.OCR for .NET от мениджъра на пакети NuGet.org
- Добавете препратка към Aspose.OCR namespace
- Приложете лицензния код, като използвате метода SetLicense
- Инициирайте екземпляр на AsposeOcr Class
- Посочете настройките за разпознаване чрез 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. Ако го зададете на true, това ще ви осигури по-голяма точност, но ще намали скоростта на обработка на PDF файла. Въпреки това, като го зададете на false, скоростта ще се подобри и точността може да бъде малко намалена. Така че трябва да изберете между двете опции въз основа на вашата ситуация.