У цьому покроковому посібнику показано, як витягнути текст із відсканованого 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. Якщо ви встановите значення true, це забезпечить більшу точність, але зменшить швидкість обробки PDF. Однак, встановивши значення false, швидкість покращиться, а точність може трохи знизитися. Тож вам доведеться вибирати між двома варіантами залежно від вашої ситуації.