
Die Suche nach spezifischem Text in PDF Dokumenten ist eine gängige Aufgabe in Dokumentenmanagementsystemen, rechtlichen Überprüfungstools, Rechnungsverarbeitern und anderen Unternehmensanwendungen. Egal, ob Sie versuchen, ein Schlüsselwort zu finden, bestimmte Werte zu extrahieren oder sensible Informationen zu schwärzen, die Automatisierung der PDF-Suche kann viel Zeit und Mühe sparen.
In diesem Blogbeitrag erfahren Sie, wie Sie Text in PDF Dateien programmgesteuert mit C# suchen können. Wir werden Sie Schritt für Schritt durch die wichtigsten Funktionen mit praktischen C#-Codebeispielen führen.
Dieser Artikel behandelt die folgenden Themen:
- C# Bibliothek zum Suchen in PDF Dokumenten
- Text in PDF mit C# durchsuchen
- Fallunempfindliche und Ganzwortsuche in PDF
- Mit regulären Ausdrücken in PDF suchen
- Text mit Positionsdetails suchen und extrahieren
- Text hervorheben oder ersetzen
- Durchsuchen Sie alle Seiten oder bestimmte Seiten
- Suchen und Schwärzen sensibler Informationen
- Kostenlose Ressourcen
C# Bibliothek zum Durchsuchen von PDF Dokumenten
Aspose.PDF for .NET vereinfacht den Prozess der Textsuche in PDF Dateien mit C#. Es ermöglicht Ihnen, genaue Wörter zu finden, Muster mithilfe von regulären Ausdrücken abzugleichen und sogar übereinstimmenden Text hervorzuheben oder zu ersetzen – das alles mit nur wenigen Codezeilen. Diese leistungsstarke Bibliothek bietet robuste Funktionen zur Manipulation von PDF Dokumenten. Sie ermöglicht es Entwicklern, Suchfunktionen einfach zu implementieren. Mit Aspose.PDF können Sie schnell Wörter in einem PDF finden, was es zu einem unschätzbaren Werkzeug für Softwareentwickler macht.
Bevor Sie mit der Textsuche in PDFs beginnen, müssen Sie Ihre Entwicklungsumgebung einrichten. Befolgen Sie diese Schritte, um mit Aspose.PDF for .NET zu beginnen:
1. Installieren Sie Aspose.PDF for .NET.
Laden Sie es von den releases herunter oder installieren Sie es über NuGet.Öffnen Sie Ihr .NET-Projekt in Visual Studio und führen Sie den folgenden Befehl in der NuGet Package Manager Console aus:
PM> Install-Package Aspose.PDF
Dieser Befehl fügt die Aspose.PDF-Bibliothek zu Ihrem Projekt hinzu, sodass Sie auf die leistungsstarken PDF-Verarbeitungsfunktionen zugreifen können.
2. Notwendige Namensräume importieren
Fügen Sie oben in Ihrer C#-Datei diese using-Direktiven hinzu:
using Aspose.Pdf;
using Aspose.Pdf.Text;
Jetzt sind Sie bereit, den Text in Ihren PDF Dateien mit der API von Aspose.PDF zu durchsuchen.
Text in PDF mit C# suchen
Mit Aspose.PDF for .NET können Sie leicht nach bestimmten Wörtern oder Phrasen in einem PDF suchen, alle ihre Instanzen finden und Maßnahmen ergreifen, wie das Markieren oder Extrahieren ihrer Details.
Befolge diese Schritte, um eine grundlegende Textsuche durchzuführen:
- Laden Sie die Ziel-PDF-Datei mit der Document Klasse.
- Erstellen Sie einen TextFragmentAbsorber, um das Suchschlüsselwort zu definieren.
- Führen Sie den Absorber auf allen Seiten mit der Methode Accept() aus.
- Retrieve all matching text fragments.
- Geben Sie die Anzahl der gefundenen Übereinstimmungen aus.
- Durchlaufen und zeigen Sie jedes Match mit seiner Seitenzahl an.
Der folgende Codebeispiel implementiert diese Schritte.
// Load the PDF file
Document pdfDocument = new Document("sample.pdf");
// Erstellen Sie einen Textabsorber mit dem Suchbegriff
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("invoice");
// Wenden Sie den Absorber auf alle Seiten an.
pdfDocument.Pages.Accept(textFragmentAbsorber);
// Get the matched text fragments
TextFragmentCollection textFragments = textFragmentAbsorber.TextFragments;
// Print how many times the keyword was found
Console.WriteLine($"Found {textFragments.Count} instance(s) of the keyword.");
// Loop through and print each found text
foreach (TextFragment fragment in textFragments)
{
Console.WriteLine($"Text: {fragment.Text} | Page: {fragment.Page.Number}");
}
Output Beispiel
Found 3 instance(s) of the keyword.
Text: invoice | Page: 1
Text: invoice | Page: 2
Text: invoice | Page: 3
Dieses Beispiel demonstriert eine einfache Schlagwortsuche, die auf allen Seiten im PDF funktioniert. Sie werden den übereinstimmenden Text zusammen mit der Seitennummer sehen.
Verstehen der Schlüsselklassen, die in der PDF-Suche verwendet werden.
Um besser zu verstehen, was im Code passiert, hier ist eine kurze Übersicht über die wichtigsten Klassen und Methoden, die beteiligt sind:
Dokument
: Stellt die gesamte PDF-Datei dar. Es bietet Zugriff auf Seiten, Inhalte und Struktur.TextFragmentAbsorber
: Finds all occurrences of a given string or pattern within the PDF. You can also enable features like case-insensitive or regex-based search.Accept()
: Wendet den Absorber auf jede Seite an. Er scannt das Dokument und sammelt übereinstimmende Fragmente.TextFragments
: Eine Sammlung aller übereinstimmenden Textfragmente, die vom Absorber zurückgegeben werden.TextFragment
: Jedes einzelne Treffer mit Details wie Inhalt, Position und Seitenzahl.
Fall-unabhängige und ganzheitliche Wortsuche mit C#
Wenn Sie PDF-Inhalte durchsuchen, müssen Sie steuern, wie das System Übereinstimmungen findet, um genaue Ergebnisse zu gewährleisten. Manchmal möchten Sie die Groß und Kleinschreibung ignorieren (Invoice” vs.
invoice”), oder Sie möchten nur vollständige Wörter abgleichen – keine Teilübereinstimmungen innerhalb anderer Wörter.
Aspose.PDF for .NET bietet Ihnen die Werkzeuge dafür.
Fallunabhängige Suche
Standardmäßig sind Suchen bei Groß und Kleinschreibung unterscheidend. Um die Groß und Kleinschreibung zu ignorieren, verwenden Sie TextSearchOptions
mit aktiviertem IgnoreCase
:
// Load the PDF file
Document pdfDocument = new Document("sample.pdf");
// Erstellen Sie einen Textabsorber mit einem groß und kleinschreibungsunempfindlichen regulären Ausdruck
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("(?i)INVOICE");
// Setzen Sie die Textsuchoptionen, um die Verwendung von regulären Ausdrücken zu aktivieren.
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;
// Wenden Sie den Absorber auf alle Seiten an.
pdfDocument.Pages.Accept(textFragmentAbsorber);
// Retrieve the matched text fragments
TextFragmentCollection textFragments = textFragmentAbsorber.TextFragments;
// Output the number of matches found
Console.WriteLine($"Found {textFragments.Count} instance(s) of the keyword.");
// Durchlaufen und Anzeigen jedes gefundenen Textfragments
foreach (TextFragment fragment in textFragments)
{
Console.WriteLine($"Text: {fragment.Text} | Page: {fragment.Page.Number}");
}
Dies wird sowohl "Rechnung", "rechnung", "RECHNUNG" als auch andere Variationen finden.
Nur ganze Wörter übereinstimmen
Sie können auch teilweise Übereinstimmungen verhindern. Zum Beispiel sollte die Suche nach car
nicht mit care
oder scar
übereinstimmen.
// Load the PDF file
Document pdfDocument = new Document("sample.pdf");
// Erstellen Sie einen Textabsorber mit einem regulären Ausdruckmuster für die Übereinstimmung ganzer Wörter.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"\bcar\b");
// Setzen Sie die Texteingabeoptionen, um die Verwendung von regulären Ausdrücken zu ermöglichen.
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;
// Alle Seiten mit dem Absorber anwenden
pdfDocument.Pages.Accept(textFragmentAbsorber);
// Retrieve the matched text fragments
TextFragmentCollection textFragments = textFragmentAbsorber.TextFragments;
// Output the number of matches found
Console.WriteLine($"Found {textFragments.Count} instance(s) of the keyword.");
// Durchlaufe und zeige jedes gefundene Textfragment an
foreach (TextFragment fragment in textFragments)
{
Console.WriteLine($"Text: {fragment.Text} | Page: {fragment.Page.Number}");
}
Dies stellt sicher, dass nur eigenständige Instanzen des Wortes Auto
übereinstimmen.
Suchen mit regulären Ausdrücken in PDF
In bestimmten Fällen müssen Sie mehr als ein bestimmtes Wort finden – Sie möchten Muster wie Daten, E-Mail-Adressen oder Referenznummern abgleichen. Dafür kommen reguläre Ausdrücke (Regex) ins Spiel.
Aspose.PDF for .NET ermöglicht es Ihnen, Regex für erweiterte Textsuche in jedem Teil Ihres PDF Dokuments zu verwenden.
Beispiel: Finde alle Daten in einer PDF
Lass uns sagen, dass du alle Daten im Format dd/mm/yyyy
finden möchtest:
// Laden Sie die PDF herunter und suchen Sie nach Text.
Document pdfDocument = new Document("sample.pdf");
// Aktiviere Regex in den Suchoptionen
TextSearchOptions searchOptions = new TextSearchOptions(true)
{
IsRegularExpressionUsed = true
};
// Erstellen Sie einen Absorber mit Datumsformat.
TextFragmentAbsorber absorber = new TextFragmentAbsorber(@"\d{2}/\d{2}/\d{4}", searchOptions);
// Wenden Sie den Absorber auf die Seiten an
pdfDocument.Pages.Accept(absorber);
// Schleife und drucke gefundene Muster
foreach (TextFragment fragment in absorber.TextFragments)
{
Console.WriteLine($"Found date: {fragment.Text} on Page {fragment.Page.Number}");
}
Andere nützliche Muster:
- Emails:
\b[A-Za-z0-9.%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b
- Phone Numbers:
\d{3}[-.\s]??\d{3}[-.\s]??\d{4}
- Rechnungsnummern:
INV-\d+
Regex erweitert Ihre Suchmöglichkeiten weit über statischen Text hinaus und hilft Ihnen, strukturierte Daten aus unstrukturierten Dokumenten zu extrahieren.
Text mit Positionsdetails suchen und extrahieren
Manchmal reicht es nicht aus, den Text zu finden – Sie müssen möglicherweise wissen, wo genau er im PDF erscheint. Aspose.PDF ermöglicht es Ihnen, die Seitenzahl, die Koordinaten und die Formatierungsdetails jedes Treffers zu extrahieren.
Diese Funktion ist besonders nützlich für den Aufbau von Indizes, das Taggen von Dokumenten oder das Erstellen von klickbaren Links.
Beispiel: Position jeder Übereinstimmung erhalten
// Lade PDF und suche nach Text
Document pdfDocument = new Document("sample.pdf");
TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
pdfDocument.Pages.Accept(absorber);
// Get matched fragments
TextFragmentCollection fragments = absorber.TextFragments;
// Drucken Sie die Position und den Text für jedes Match.
foreach (TextFragment fragment in fragments)
{
Console.WriteLine($"Text: {fragment.Text}");
Console.WriteLine($"Page: {fragment.Page.Number}");
Console.WriteLine($"Position - X: {fragment.Position.XIndent}, Y: {fragment.Position.YIndent}");
Console.WriteLine($"Font: {fragment.TextState.Font.FontName}, Size: {fragment.TextState.FontSize}");
Console.WriteLine("------------");
}
Sample Output
Text: invoice
Page: 1
Position - X: 33.482, Y: 708.246
Font: Helvetica, Size: 12
------------
Text: invoice
Page: 2
Position - X: 33.482, Y: 708.246
Font: Helvetica, Size: 12
------------
Text: invoice
Page: 3
Position - X: 33.482, Y: 708.246
Font: Helvetica, Size: 12
------------
Sie wissen jetzt genau, wo das Wort Rechnung
erscheint, sowie wie es gestylt ist. Dieses Detailniveau eröffnet die Tür für fortgeschrittene Verarbeitungen, wie Anmerkungen, Tooltipps oder dynamische Hervorhebungen.
Text hervorheben oder ersetzen
Sobald Sie den spezifischen Text in einer PDF gefunden haben, können Sie einen Schritt weiter gehen, indem Sie ihn hervorheben oder sogar durch neue Inhalte ersetzen. Aspose.PDF for .NET ermöglicht es Ihnen, den übereinstimmenden Text einfach mithilfe des TextFragment
Objekts zu stylen oder zu ändern.
Text in PDF suchen und hervorheben
Sie können den Text visuell hervorheben, indem Sie die Hintergrund und Schriftfarbe ändern.
TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
pdfDocument.Pages.Accept(absorber);
foreach (TextFragment fragment in absorber.TextFragments)
{
// Highlight by changing text appearance
fragment.TextState.BackgroundColor = Color.Yellow;
fragment.TextState.ForegroundColor = Color.Red;
fragment.TextState.FontStyle = FontStyles.Bold;
}
Das ist nützlich für die Überprüfung, das Überarbeiten oder die Erstellung von annotierten Berichten.
Text finden und ersetzen
Need to redact or update text in the document? Just replace it directly:
foreach (TextFragment fragment in absorber.TextFragments)
{
fragment.Text = "REDACTED";
}
Du kannst sogar neue Formatierungen anwenden, während du ersetzt:
fragment.TextState.FontSize = 12;
fragment.TextState.Font = FontRepository.FindFont("Arial");
fragment.TextState.ForegroundColor = Color.Black;
Das Hervorheben und Ersetzen von Text programmgesteuert ermöglicht es Ihnen, viele Dokumentenverarbeitungsaufgaben zu automatisieren, wie zum Beispiel das Bereinigen von Vorlagen, das Aktualisieren veralteter Inhalte oder das Zensieren privater Daten.
Durchsuchen aller Seiten oder bestimmter Seiten
Standardmäßig durchsucht Aspose.PDF alle Seiten in einer PDF. Aber manchmal möchten Sie die Suche auf eine bestimmte Seite oder einen bestimmten Seitenbereich beschränken—insbesondere bei der Arbeit mit großen Dateien oder wenn der Inhalt vorhersehbar ist.
Aspose.PDF macht es einfach, beides zu tun.
Auf allen Seiten suchen (Standard)
Wenn Sie keine Seite angeben, sucht der Absorber automatisch auf jeder Seite.
TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
pdfDocument.Pages.Accept(absorber); // Searches all pages
Suche auf einer bestimmten Seite
Sie können auch eine einzelne Seite suchen, indem Sie sie direkt anvisieren:
TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
// Search only on page 2
pdfDocument.Pages[2].Accept(absorber);
Suche auf einer Reihe von Seiten
Um einen benutzerdefinierten Bereich zu durchsuchen (z. B. Seiten 2 bis 4), durchlaufen Sie einfach den Bereich:
TextFragmentAbsorber absorber = new TextFragmentAbsorber("invoice");
// Loop through selected pages
for (int i = 2; i <= 4; i++)
{
pdfDocument.Pages[i].Accept(absorber);
}
Dieser Ansatz gibt Ihnen die volle Kontrolle über Leistung und Präzision, was besonders hilfreich für gescannte oder zerschnittene Dokumente ist.
Erweiterter Anwendungsfall: Sensible Informationen suchen und schwärzen
In rechtlichen, HR oder Finanzdokumenten ist es üblich, sensible Inhalte wie Namen, IDs oder Kontonummern vor der Weitergabe zu verbergen. Aspose.PDF for .NET macht dies einfach, indem es Such und Schwärzungsfunktionen kombiniert.
Sie können nach Begriffen suchen und dann eine schwarze Überlagerung mit RedactionAnnotation
anwenden.
// Laden Sie die PDF und suchen Sie nach Text.
Document pdfDocument = new Document("sample.pdf");
// Search for the name "John Doe"
TextFragmentAbsorber absorber = new TextFragmentAbsorber("John Doe");
pdfDocument.Pages.Accept(absorber);
// Durchlaufe gefundene Fragmente und schwärze sie.
foreach (TextFragment fragment in absorber.TextFragments)
{
// Position und Abmessungen abrufen
Aspose.Pdf.Rectangle rect = new Aspose.Pdf.Rectangle(
fragment.Position.XIndent,
fragment.Position.YIndent,
fragment.Position.XIndent + fragment.Rectangle.Width,
fragment.Position.YIndent + fragment.Rectangle.Height
);
// Create a redaction annotation
RedactionAnnotation redaction = new RedactionAnnotation(fragment.Page, rect)
{
FillColor = Color.Black,
Color = Color.Black
};
// Fügen Sie die Schwärzung hinzu und wenden Sie sie an.
fragment.Page.Annotations.Add(redaction);
redaction.Redact();
}
// Save the modified document
pdfDocument.Save("SearchAndRedact.pdf");
What Happens
- Der Zieltext ("John Doe") ist gefunden und mit einem schwarzen Kästchen abgedeckt.
- Das ist nicht nur visuell - es entfernt den Inhalt aus der PDF-Ebene, wodurch er aus der Datei nicht wiederherstellbar ist.
Erhalten Sie eine kostenlose Lizenz
Jetzt, da Sie gelernt haben, wie Sie Text in PDFs mit Aspose.PDF for .NET suchen, extrahieren, hervorheben und schwärzen, ist es Zeit, dieses Wissen in die Tat umzusetzen.
Probier es selbst: Lade eine kostenlose vorübergehende Lizenz herunter und beginne mit dem Erstellen deiner eigenen smarten PDF-Tools.
In PDF suchen: Kostenlose Ressourcen
Möchten Sie über das bloße Durchsuchen von Text in PDFs hinausgehen? Entdecken Sie die vollständigen Funktionen von Aspose.PDF for .NET mit diesen kostenlosen, entwicklerfreundlichen Ressourcen:
Entwicklerhandbuch Lernen Sie, wie man PDF Dateien programmgesteuert erstellt, bearbeitet, konvertiert und sichert. Aspose.PDF for .NET Dokumentation
Kostenlose Online-Tools Konvertieren, zusammenführen, aufteilen und bearbeiten Sie PDF Dateien direkt in Ihrem Browser. Aspose Free PDF Tools
API-Referenz Erfahren Sie mehr über Klassen, Eigenschaften und Methoden, die in Aspose.PDF for .NET verfügbar sind, um Ihre Entwicklung zu beschleunigen. Aspose.PDF API Reference
Support Forum Fragen stellen, Probleme melden und Antworten direkt von Aspose-Experten erhalten. Aspose Support Forum
Diese Ressourcen sind kostenlos und verfügbar, um Ihnen zu helfen, das Beste aus Ihrer PDF-Entwicklungsreise herauszuholen.
Schlussfolgerung
Die Suche nach Text in PDF Dateien ist eine wichtige Funktion für viele dokumentenbasierte Anwendungen—ob Sie Daten extrahieren, Inhalte prüfen oder Dateien zur Schwärzung vorbereiten. Mit Aspose.PDF for .NET können Sie ganz einfach Schlüsselwortsuchen durchführen, reguläre Ausdrücke verwenden, Ergebnisse hervorheben und sogar sensible Informationen präzise und kontrolliert schwärzen. Aspose.PDF bietet eine entwicklerfreundliche API, die komplexe PDF-Operationen vereinfacht—und Ihnen Zeit spart, während sie leistungsstarke Automatisierung ermöglicht.
Wenn Sie Fragen haben oder weitere Unterstützung benötigen, können Sie sich gerne an unser free support forum wenden.