Suchen Sie mit C# nach einem Word in PDF

Möglicherweise müssen Sie nach einer bestimmten Information, einem Textsatz oder einem Wort in Ihren Dokumenten suchen. Als C#-Entwickler können Sie ganz einfach programmgesteuert in Ihren .NET-Anwendungen nach beliebigem Text in PDF-Dokumenten suchen. In diesem Artikel erfahren Sie, wie Sie Text in PDF-Dokumenten mit C# durchsuchen.

Die folgenden Themen werden in diesem Artikel behandelt/behandelt:

C#-API zum Suchen von Text

Zum Suchen von Text in PDF-Dokumenten verwende ich die API GroupDocs.Search for .NET. Sie können damit Textsuchvorgänge in allen gängigen Dokumentformaten wie PDF, Word, Excel, PowerPoint und vielen mehr durchführen. Es ermöglicht Ihnen auch, die erforderlichen Informationen aus Dateien, Dokumenten, E-Mails und Archiven abzurufen. Sie können mehrere Indizes erstellen und zusammenführen, um sie mit einfachen, booleschen, regulären Ausdrücken (Regex), Fuzzy und anderen Arten von Abfragen schnell und intelligent zu durchsuchen.

Sie können die DLL der API entweder herunterladen oder sie mit NuGet installieren.

Install-Package GroupDocs.Search

Suchen Sie Text in PDF-Dokumenten mit C#

Sie können programmgesteuert nach einem beliebigen Text oder einem bestimmten Wort in Ihren PDF-Dokumenten suchen, indem Sie die folgenden einfachen Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Index.
  • Geben Sie den Pfad zum Indexordner an
  • Abonnieren Sie die Indexereignisse
  • Fügen Sie PDF-Dateien zum Index hinzu, indem Sie die Methode Add() aufrufen
  • Definieren Sie eine Suchanfrage
  • Führen Sie eine Suche mit der Methode Search() mit Suchabfrage durch
  • Verwenden Sie das SearchResult und drucken Sie die Zusammenfassung
  • Markieren Sie die Suchergebnisse in der Ausgabe mit der Methode Highlight().

Das folgende Codebeispiel zeigt, wie Text in PDF-Dokumenten mit C# gesucht wird.

// Geben Sie den Pfad zum Indexordner an
string indexFolder = @"C:\Files\Index\";

// Geben Sie den Pfad zu einem Ordner an, der zu durchsuchende PDF-Dokumente enthält
string documentsFolder = @"C:\Files\Files\"; 

// einen Index erstellen oder laden
Index index = new Index(indexFolder);

// Abonnieren Sie Indexereignisse
index.Events.ErrorOccurred += (sender, args) =>
{
    // Schreiben von Fehlermeldungen in die Konsole
    Console.WriteLine(args.Message);
};

// Dateien synchron hinzufügen
// Synchrone Indizierung von Dokumenten aus dem angegebenen Ordner
index.Add(documentsFolder); 

// Suche durchführen
string query = "Vestibulum"; // Specify a search query
SearchResult result = index.Search(query); // Searching in the index

// Suchergebnisse verwenden
// Drucken des Ergebnisses
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);
}

// Markieren Sie Vorkommnisse im Text
if (result.DocumentCount > 0)
{
    // Abrufen des ersten gefundenen Dokuments
    FoundDocument document = result.GetFoundDocument(0);

    string path = documentsFolder + "Highlighted.html";

    // Erstellen des Ausgabeadapters in einer Datei
    OutputAdapter outputAdapter = new FileOutputAdapter(path);

    // Erstellen des Textmarker-Objekts
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter);

    // Generieren eines Ausgabedokuments im HTML-Format mit hervorgehobenen Suchergebnissen
    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);
}

Das obige Codebeispiel generiert die folgende Ausgabe:

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
Suche-Text-oder-Wort-in-PDF-mit-CSharp

Markierte den gesuchten Text in PDF-Dokumenten mit C#

Der Index und das Indexereignis

Die Klasse Index ist die Hauptklasse, die Funktionen bereitstellt, um die Dokumente zu indizieren und zu durchsuchen. Ein Index kann im Arbeitsspeicher oder auf der Festplatte erstellt werden, indem der Konstruktor dieser Klasse aufgerufen wird. Im obigen Codebeispiel habe ich den Index auf der Festplatte erstellt, damit er wiederverwendet werden kann.

Das Ereignis ErrorOccurred zeigt die Fehler an, falls während der Indizierung der Dateien Fehler auftreten. Sie müssen diese also abonnieren, um Informationen zu Indizierungsfehlern zu erhalten.

Dateien zum Index hinzufügen

Die Add()-Methode der Index-Klasse fügt eine Datei oder alle Dateien in einem angegebenen Ordner oder Unterordnern über einen absoluten oder relativen Pfad hinzu. Alle Dokumente im angegebenen Pfad werden indiziert.

Führen Sie einen Suchvorgang durch

Die Index-Klasse stellt verschiedene Search-Methoden bereit, um den Suchvorgang auszuführen. Sie können suchen, indem Sie ein einfaches Schlüsselwort angeben oder eine Suchanfrage definieren.

Die Klasse SearchResult stellt Details zu einem Suchergebnis bereit, das einer Suchabfrage entspricht. Die folgenden Methoden und Eigenschaften dieser Klasse erleichtern das Abrufen von Details zu Suchergebnissen:

Markieren Sie die Suchergebnisse

Die Klasse HtmlHighlighter hebt die Suchergebnisse in einem gesamten Text des in HTML formatierten Dokuments hervor.

Die Highlight()-Methode der Index-Klasse generiert eine HTML-Ausgabe, die Vorkommen gefundener Begriffe hervorhebt. Weitere Details zu „Highlighting Search Results“ finden Sie in der Dokumentation.

Textsuche mit Berücksichtigung der Groß-/Kleinschreibung in PDF mit C#

Sie können programmgesteuert nach einer bestimmten Textphrase oder einem Wort unter Berücksichtigung von Groß- und Kleinbuchstaben in Ihren PDF-Dokumenten suchen, indem Sie die folgenden einfachen Schritte ausführen:

  • Erstellen Sie eine Instanz der Klasse Index.
  • Geben Sie den Pfad zum Indexordner an
  • Fügen Sie PDF-Dateien zum Index hinzu, indem Sie die Methode Add() aufrufen
  • Erstellen Sie eine Instanz von SearchOptions
  • Setzen Sie die Eigenschaft UseCaseSensitiveSearch auf „true“.
  • Definieren Sie eine Suchanfrage
  • Führen Sie eine Suche mit der Methode Search() mit Suchabfrage durch and the SearchOptions
  • Verwenden Sie das SearchResult und drucken Sie die Zusammenfassung

Das folgende Codebeispiel zeigt, wie Sie eine Textsuche mit Berücksichtigung der Groß-/Kleinschreibung in einem PDF-Dokument mit C# durchführen.

// Geben Sie den Pfad zum Indexordner an
string indexFolder = @"C:\Files\Index\";

// Geben Sie den Pfad zu einem Ordner an, der zu durchsuchende PDF-Dokumente enthält
string documentsFolder = @"C:\Files\Files\";

// Index im angegebenen Ordner erstellen
Index index = new Index(indexFolder);

// Indizieren von Dokumenten aus dem angegebenen Ordner
index.Add(documentsFolder); 

// Suchoptionen definieren
SearchOptions options = new SearchOptions();
options.UseCaseSensitiveSearch = true; // Enabling case sensitive search

// Suchbegriff
string query = "Vestibulum";

// Führen Sie die Suche durch
SearchResult result = index.Search(query, options);

// Drucken des Ergebnisses
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

Die Klasse SearchOptions bietet Optionen zum Ausführen der Suchvorgänge. Die Eigenschaft UseCaseSensitiveSearch dieser Klasse ermöglicht es Ihnen, eine Suche mit Berücksichtigung der Groß-/Kleinschreibung nach einem Wort oder Text durchzuführen.

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit C# nach Text in einem PDF-Dokument suchen. Außerdem haben Sie gelernt, wie Sie mit C# in einem PDF-Dokument eine Textsuche mit Berücksichtigung der Groß-/Kleinschreibung durchführen. Weitere Informationen zu GroupDocs.Search for .NET API finden Sie in der Dokumentation. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.

Siehe auch