Com extreure text de PDFs en .NET

Com extreure text de PDFs en .NET

Aquest article demostra com extreure text de documents PDF utilitzant l’extractor de text Aspose.PDF per a .NET. Aprendràs a utilitzar tots els modes de extracció recolzats -Pure, Raw i Plain- i automatitzar fluxos de treball per als PDF individuals o múltiples.

El problema del món real

La còpia manual del text de PDF és ineficient i per error.Per a aplicacions en l’anàlisi de dades, la migració de documents, o arxiu, l’extracció automatitzada de text garanteix coherència, velocitat i precisió.

Revisió de solucions

Aspose.PDF Text Extractor per .NET proporciona una interfície neta i programable per a l’extracció de text en diversos formats. triar entre modes Pure, Raw i Plain per adaptar-se al seu cas d’ús - sigui que necessiteu una sortida formatada, dades primeres o contingut pla.

Prerequisits

  • Visual Studio 2019 o posterior
  • .NET 6.0 o posterior
  • Aspose.PDF per a .NET instal·lat a través de NuGet
PM> Install-Package Aspose.PDF

Implementació de pas a pas

Pas 1: Instal·la i configura Aspose.PDF

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

Pas 2: Extreure text utilitzant el mode de default (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);
}

Pas 3: Extreure text en mode pur o pla

  • **Mode pur: ** Conserva posicions relatives i afegeix espais per alinear-se.
  • Mode de planificació: Estrips de formatació, sortides de text amb espais mínims.
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);
}

Utilitzar Casos i aplicacions (amb variacions de codi)

1. Batch Extract Text de múltiples 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. Elegir el mode d’extracció basat en el cas de l’ús

  • Utilitzeu Pure per a dissenys com a taula o formatació espacial.
  • Utilitzeu Plain per a l’extracció o anàlisi de dades nets.
  • Utilitzeu Raw per a text no processat.

3. Post-procés Text extraït

Després de l’extracció, aplicar regex, netejar text, o enviar resultats a altres serveis ( cerca, tubs ML, etc.).

4. Integrar l’extracció amb els tubs de dades

L’extracció automàtica com a part d’un flux de treball més ampli ETL, reportatge o gestió de documents utilitzant pràctiques estàndard .NET.

Els reptes i les solucions comunes

Desafecte: ** Resultats inconsistents a causa de la estructura PDF complexaSolució:** Experimenta diferents modes d’extracció (Pure, Plain, Raw) i compara els resultats.

**Desafecte: ** Velocitat d’extracció de batxillerat Solució: Utilitza un únic TextExtractor Instal·lar i processar múltiples fitxers en una sola ronda per al millor rendiment.

Desafecte: Personatges especials o problemes de codificacióSolució: Utilitzeu el mode Pla per a la formatació mínima, llavors apliqueu el processament d’arrel personalitzat com sigui necessari.

Performances i millors pràctiques

  • Prova tots els tres modes d’extracció per determinar els resultats òptims per al teu tipus de document
  • Salvar PDFs originals abans de les operacions de batxillerat
  • Tractar noms de producció i organització en llocs de treball de batxillerat
  • Gestió d’errors integrats i logging per a la robustesa

Exemple complet d’implementació

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);
        }
    }
}

Conclusió

Aspose.PDF Text Extractor per .NET li proporciona eines poderoses i flexibles per a l’extracció de text en múltiples formats, adequats per al tractament de dades, l’arxiu o l ́anàlisi.

 Català