Este tutorial passo a passo mostra como extrair texto de PDF digitalizado em C#. Quando você digitaliza documentos em um PDF, essas páginas são adicionadas como imagens digitalizadas dentro do arquivo PDF. Portanto, para extrair texto do arquivo PDF digitalizado, você precisará extrair texto de imagens em PDF em C# aplicando o reconhecimento óptico de caracteres (OCR).
Etapas para extrair texto de PDF digitalizado em C#
- Obtenha Aspose.OCR for .NET do gerenciador de pacotes NuGet.org
- Adicionar referência a Aspose.OCR namespace
- Aplicar o código de licença usando o método SetLicense
- Inicie uma instância da classe AsposeOcr
- Especifique as configurações de reconhecimento usando DocumentRecognitionSettings class
- Extraia todas as páginas PDF usando o método RecognizePDF
- Obtenha texto de cada página PDF usando a propriedade RecognitionText
Com a ajuda das etapas acima, você pode ler o texto do PDF digitalizado em C# de maneira rápida e fácil. Anteriormente, mostramos como Extrair texto da imagem em C#. No entanto, este exemplo ajuda você a obter texto de PDF em C#.
Código para extrair texto de PDF digitalizado em 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++; | |
} | |
} | |
} | |
} |
O exemplo C# get text from PDF acima é simples e fácil de entender. Estamos simplesmente lendo um arquivo PDF digitalizado e extraindo o texto de cada página. No entanto, um ponto importante a ser entendido aqui é a propriedade DetectArea. Se você defini-lo como verdadeiro, ele fornecerá mais precisão, mas reduzirá a velocidade de processamento do PDF. No entanto, definindo-o como falso, a velocidade melhorará e a precisão poderá ser um pouco reduzida. Então você tem que escolher entre as duas opções com base na sua situação.