Como extrair texto de PDFs em .NET

Como extrair texto de PDFs em .NET

Este artigo mostra como extrair texto de documentos PDF usando o Aspose.PDF Text Extractor para .NET. Você aprenderá a usar todos os modos de extração suportados – Pure, Raw e Plain – e automatizar fluxos de trabalho para PDFs individuais ou múltiplos.

Problemas do mundo real

Para aplicações em análise de dados, migração de documentos, ou arquivamento, extração automatizada de texto garante consistência, velocidade e precisão.

Solução Overview

Aspose.PDF Text Extractor for .NET fornece uma interface limpa e programável para extrair texto em vários formatos. Escolha entre modos Pure, Raw e Plain para se adequar ao seu caso de uso – se você precisa de saída formata, dados crus, ou conteúdo plano.

Pré-requisitos

  • Visual Studio 2019 ou posterior
  • .NET 6.0 ou posterior
  • Aspose.PDF para .NET instalado através de NuGet
PM> Install-Package Aspose.PDF

Implementação passo a passo

Passo 1: Instale e Configure Aspose.PDF

using Aspose.Pdf.Plugins;
using System.IO;

Passo 2: Extrair texto usando o modo padrão (Raw)

using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(); // Raw mode by default
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

Passo 3: Extrair texto em modo puro ou plano

  • Pure Mode: Preserva posições relativas e adiciona espaços para alinhamento.
  • Modo de planejamento: Estripos de formatação, saída de texto com espaços mínimos.
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure); // Or .Plain
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

Use Casos e Aplicações (com variações de código)

1. Texto extraído de múltiplos PDFs

string[] files = Directory.GetFiles(@"C:\PDFs", "*.pdf");
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
    foreach (var file in files)
        options.AddInput(new FileDataSource(file));
    var resultContainer = extractor.Process(options);
    for (int i = 0; i < resultContainer.ResultCollection.Count; i++)
    {
        string extracted = resultContainer.ResultCollection[i].ToString();
        // Save to disk, process, or analyze as needed
        File.WriteAllText($@"C:\PDFs\out\{Path.GetFileNameWithoutExtension(files[i])}.txt", extracted);
    }
}

2. Escolha o modo de extração com base no caso de uso

  • Use Pure para layouts semelhantes a tabelas ou formatação espacial.
  • Use Plain para extração ou análise de dados limpos.
  • Use Raw para texto não processado.

3. Post-processo Texto Extraído

Após a extração, aplicar regex, limpeza de texto, ou enviar resultados para outros serviços (cerca, tubos ML, etc.).

4. Integração de Extracção com Pipelines de Dados

Extracção automática como parte de um fluxo de trabalho mais amplo de ETL, relatório ou gerenciamento de documentos usando práticas padrão .NET.

Desafios comuns e soluções

Desafio: Produção inconsistente devido à estrutura PDF complexaSolução: Tente diferentes modos de extração (Pure, Plain, Raw) e compare os resultados.

Desafio: ** Velocidade de extração de batchSolução: ** Use um único TextExtractor instância e processar vários arquivos em uma corrida para o melhor desempenho.

Desafio: Caracteres especiais ou problemas de codificaçãoSolução: Use o modo Plain para formatação mínima e, em seguida, aplicar o processamento de string personalizado conforme necessário.

Desempenho e melhores práticas

  • Teste todos os três modos de extração para determinar resultados óptimos para o seu tipo de documento
  • Salve PDFs originais antes das operações de batch
  • Comércio de nomes de produto e organização em trabalhos de batch
  • Integração de erros e logging para robusteza

Exemplo completo de implementação

using Aspose.Pdf.Plugins;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (var extractor = new TextExtractor())
        {
            var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Plain);
            options.AddInput(new FileDataSource(@"C:\PDFs\input.pdf"));
            var resultContainer = extractor.Process(options);
            string textExtracted = resultContainer.ResultCollection[0].ToString();
            File.WriteAllText(@"C:\PDFs\output.txt", textExtracted);
        }
    }
}

Conclusão

Aspose.PDF Text Extractor for .NET oferece ferramentas poderosas e flexíveis para extrair texto em múltiplos formatos – apropriados para processamento de dados, arquivo ou análise. Escolha o modo de extração mais adequado às suas necessidades e automatiza a extracção para alta eficiência em aplicações .Net.

 Português