Cerca una parola in PDF usando C#

Potrebbe essere necessario cercare un’informazione particolare, una frase di testo o una parola nei documenti. Come sviluppatore C#, puoi cercare facilmente qualsiasi testo da documenti PDF a livello di codice nelle tue applicazioni .NET. In questo articolo imparerai come cercare testo nei documenti PDF usando C#.

I seguenti argomenti sono discussi/trattati in questo articolo:

API C# per la ricerca di testo

Per cercare il testo nei documenti PDF, utilizzerò l’API GroupDocs.Search for .NET. Ti consente di eseguire operazioni di ricerca di testo in tutti i formati di documenti popolari come PDF, Word, Excel, PowerPoint e molti altri. Consente inoltre di recuperare le informazioni richieste da file, documenti, e-mail e archivi. Puoi creare e unire più indici per eseguire ricerche rapide e intelligenti all’interno di essi utilizzando query semplici, booleane, a espressioni regolari (Regex), Fuzzy e altri tipi di query.

Puoi scaricare la DLL dell’API o installarla utilizzando NuGet.

Install-Package GroupDocs.Search

Cerca testo nei documenti PDF usando C#

Puoi cercare qualsiasi testo o una parola specifica nei tuoi documenti PDF in modo programmatico seguendo i semplici passaggi indicati di seguito:

  • Crea un’istanza della classe Index.
  • Specificare il percorso della cartella dell’indice
  • Iscriviti agli eventi dell’indice
  • Aggiungi file PDF all’Indice chiamando il metodo Add().
  • Definisci una query di ricerca
  • Eseguire una ricerca utilizzando il metodo Search() con query di ricerca
  • Usa il Risultato di ricerca e stampa il riepilogo
  • Evidenzia i risultati della ricerca nell’output utilizzando il metodo Highlight().

L’esempio di codice seguente mostra come cercare testo nei documenti PDF usando C#.

// Specificare il percorso della cartella dell'indice
string indexFolder = @"C:\Files\Index\";

// Specificare il percorso di una cartella contenente documenti PDF da cercare
string documentsFolder = @"C:\Files\Files\"; 

// creare o caricare un indice
Index index = new Index(indexFolder);

// Iscriviti agli eventi dell'indice
index.Events.ErrorOccurred += (sender, args) =>
{
    // Scrittura di messaggi di errore sulla console
    Console.WriteLine(args.Message);
};

// Aggiungi file in modo sincrono
// Documenti di indicizzazione sincrona dalla cartella specificata
index.Add(documentsFolder); 

// Esegui la ricerca
string query = "Vestibulum"; // Specify a search query
SearchResult result = index.Search(query); // Searching in the index

// Usa i risultati di ricerca
// Stampa del risultato
Console.WriteLine("Documents found: " + result.DocumentCount);
Console.WriteLine("Total occurrences found: " + result.OccurrenceCount);

for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
}

// Evidenzia le occorrenze nel testo
if (result.DocumentCount > 0)
{
    // Ottenere il primo documento trovato
    FoundDocument document = result.GetFoundDocument(0);

    string path = documentsFolder + "Highlighted.html";

    // Creazione dell'adattatore di output in un file
    OutputAdapter outputAdapter = new FileOutputAdapter(path);

    // Creazione dell'oggetto evidenziatore
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter);

    // Generazione di documenti in formato HTML di output con risultati di ricerca evidenziati
    index.Highlight(document, highlighter); 

    Console.WriteLine();
    Console.WriteLine("Generated HTML file can be opened with Internet browser.");
    Console.WriteLine("The file can be found by the following path:");
    Console.WriteLine(path);
}

L’esempio di codice sopra genererà il seguente output:

Documents found: 1
Total occurrences found: 4
        Document: C:\Files\Files\sample.pdf
        Occurrences: 4

Generated HTML file can be opened with Internet browser.
The file can be found by the following path:
C:\Files\Files\Highlighted.html
Cerca-testo-o-parola-in-PDF-usando-CSharp

Evidenziato il testo cercato nei documenti PDF usando C#

L’Indice e l’Evento Indice

La classe Index è la classe principale che fornisce funzionalità per indicizzare i documenti e ricercarli. Un indice può essere creato in memoria o su disco chiamando il costruttore di questa classe. Nell’esempio di codice sopra, ho creato l’indice su disco in modo che possa essere riutilizzato.

L’evento ErrorOccurred mostra gli eventuali errori che si verificano durante l’indicizzazione dei file. Quindi, è necessario iscriversi a questo per ricevere informazioni sugli errori di indicizzazione.

Aggiungi file all’indice

Il metodo Add() della classe Index aggiunge un file o tutti i file in una cartella o sottocartelle specificate in base a un percorso assoluto o relativo. Tutti i documenti sul percorso indicato verranno indicizzati.

Eseguire un’operazione di ricerca

La classe Index fornisce vari metodi Search per eseguire l’operazione di ricerca. Puoi cercare fornendo una semplice parola chiave o definendo una SearchQuery.

La classe SearchResult fornisce i dettagli di un risultato di ricerca che corrisponde a una query di ricerca. I seguenti metodi e proprietà di questa classe facilitano l’ottenimento dei dettagli dei risultati di ricerca:

Evidenzia i risultati della ricerca

La classe HtmlHighlighter evidenzia i risultati della ricerca in un intero testo del documento formattato in HTML.

Il metodo Highlight() della classe Index genera un output HTML che evidenzia le occorrenze dei termini trovati. Puoi trovare maggiori dettagli su “Evidenziazione dei risultati di ricerca” nella documentazione.

Ricerca di testo con distinzione tra maiuscole e minuscole in PDF utilizzando C#

Puoi cercare qualsiasi frase di testo specifica o una parola considerando le lettere maiuscole e minuscole nei tuoi documenti PDF in modo programmatico seguendo i semplici passaggi indicati di seguito:

  • Crea un’istanza della classe Index.
  • Specificare il percorso della cartella dell’indice
  • Aggiungi file PDF all’Indice chiamando il metodo Add().
  • Crea un’istanza di SearchOptions
  • Imposta la proprietà UseCaseSensitiveSearch su true
  • Definisci una query di ricerca
  • Eseguire una ricerca utilizzando il metodo Search() con query di ricerca and the SearchOptions
  • Usa il Risultato di ricerca e stampa il riepilogo

L’esempio di codice seguente mostra come eseguire una ricerca di testo con distinzione tra maiuscole e minuscole in un documento PDF usando C#.

// Specificare il percorso della cartella dell'indice
string indexFolder = @"C:\Files\Index\";

// Specificare il percorso di una cartella contenente documenti PDF da cercare
string documentsFolder = @"C:\Files\Files\";

// Creazione dell'indice nella cartella specificata
Index index = new Index(indexFolder);

// Indicizzazione di documenti dalla cartella specificata
index.Add(documentsFolder); 

// Definisci le opzioni di ricerca
SearchOptions options = new SearchOptions();
options.UseCaseSensitiveSearch = true; // Enabling case sensitive search

// parola di ricerca
string query = "Vestibulum";

// Esegui la ricerca
SearchResult result = index.Search(query, options);

// Stampa del risultato
Console.WriteLine("Documents found: " + result.DocumentCount);
Console.WriteLine("Total occurrences found: " + result.OccurrenceCount);

for (int i = 0; i < result.DocumentCount; i++)
{
    FoundDocument document = result.GetFoundDocument(i);
    Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
    Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
}
Documents found: 1
Total occurrences found: 2
        Document: C:\Files\Files\sample.pdf
        Occurrences: 2

La classe SearchOptions fornisce opzioni per eseguire le operazioni di ricerca. La proprietà UseCaseSensitiveSearch di questa classe consente di eseguire una ricerca con distinzione tra maiuscole e minuscole per una parola o un testo.

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come cercare il testo in un documento PDF usando C#. Hai anche imparato come eseguire una ricerca di testo con distinzione tra maiuscole e minuscole in un documento PDF utilizzando C#. Puoi saperne di più su GroupDocs.Search per l’API .NET usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche