Suchen und Abrufen einer Textseite in einer PDF-Datei
Einführung
Mussten Sie schon einmal in einem PDF-Dokument nach einem bestimmten Text suchen und ihn zur weiteren Verwendung extrahieren? Vielleicht erstellen Sie eine App, die Dokumente verarbeitet und eine präzise Datenextraktion erfordert, oder Sie müssen PDFs einfach nur effizient analysieren. Was auch immer Ihr Fall sein mag, Sie sind hier richtig! In diesem Tutorial erfahren Sie, wie Sie mit Aspose.PDF für .NET nach Text auf einer Seite in einer PDF-Datei suchen und ihn abrufen können. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, diese Anleitung führt Sie auf unterhaltsame und ansprechende Weise durch jeden Schritt. Bereit loszulegen? Dann legen wir los!
Voraussetzungen
Bevor wir mit dem Programmieren beginnen, stellen wir sicher, dass Sie alles haben, was Sie brauchen:
- Aspose.PDF für .NET-Bibliothek: Sie können es herunterladen vonHier oder holen Sie sich über denselben Link eine kostenlose Testversion. Um eine zu kaufen, gehen Sie zuAspose-Shop.
- .NET Framework: Sie benötigen eine funktionierende .NET-Entwicklungsumgebung wie Visual Studio.
- Eine PDF-Datei: Sie benötigen eine Beispiel-PDF-Datei, in der wir den Text suchen und extrahieren können. Nehmen wir für dieses Tutorial an, dass die Datei den Namen hat
SearchAndGetTextPage.pdf
.
Pakete importieren
Als Erstes müssen wir die erforderlichen Namespaces importieren, um mit Aspose.PDF für .NET zu arbeiten. Stellen Sie sicher, dass diese oben in Ihrem Code enthalten sind.
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Text;
using System
Nachdem wir nun die Voraussetzungen geklärt haben, wollen wir den Code Schritt für Schritt aufschlüsseln. Jeder Schritt ist klar umrissen, damit er leicht nachvollziehbar ist.
Schritt 1: Legen Sie den Pfad zu Ihrem Dokumentverzeichnis fest
Bevor Sie mit Ihrem PDF interagieren, müssen Sie den Pfad angeben, unter dem Ihr PDF-Dokument gespeichert ist. Dadurch wird sichergestellt, dass das Programm auf die Datei zugreifen kann.
string dataDir = "YOUR DOCUMENT DIRECTORY";
- dataDir: Dies ist der Pfad zum Ordner, in dem Ihre PDF-Dateien gespeichert sind. Ersetzen Sie
"YOUR DOCUMENT DIRECTORY"
durch den tatsächlichen Pfad, in dem sich das PDF befindet.
Schritt 2: Laden Sie das PDF-Dokument
Der nächste Schritt besteht darin, das PDF-Dokument in den Speicher zu laden, damit Sie damit arbeiten können. So geht’s:
Document pdfDocument = new Document(dataDir + "SearchAndGetTextPage.pdf");
- Dokument: Dies ist die Aspose.PDF-Klasse, die die PDF-Datei lädt.
- pdfDocument: Die Variable, in der Ihre PDF-Datei nach dem Laden gespeichert wird.
Schritt 3: Erstellen Sie ein Text Absorber-Objekt
DerTextFragmentAbsorber
Mit dieser Klasse können Sie nach bestimmtem Text in der PDF-Datei suchen. Lassen Sie uns eine Instanz dieser Klasse erstellen, um alle Instanzen einer bestimmten Suchphrase zu finden.
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("Figure");
- TextFragmentAbsorber: Diese Klasse ist für das Suchen und Extrahieren von Text aus der PDF-Datei verantwortlich.
- „Abbildung“: Ersetzen Sie dies durch einen beliebigen Text, nach dem Sie im PDF suchen möchten.
Schritt 4: Den Text Absorber auf die gesamte PDF-Datei anwenden
Sobald der Textabsorber eingerichtet ist, müssen Sie dem Programm sagen, dass es alle Seiten der PDF-Datei durchsuchen soll.
pdfDocument.Pages.Accept(textFragmentAbsorber);
- Accept(): Diese Methode wendet den Textabsorber auf das PDF an und durchsucht jede Seite nach dem von Ihnen angegebenen Text.
Schritt 5: Den extrahierten Text abrufen und durchlaufen
Nachdem wir das PDF gescannt haben, ist es an der Zeit, die Ergebnisse abzurufen und anzuzeigen. Wir durchlaufen die extrahierten Textfragmente in einer Schleife.
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
- TextFragmentCollection: Diese Sammlung enthält alle Instanzen der vom Textabsorber gefundenen Textfragmente.
Schritt 6: Durchlaufen Sie jedes Fragment und extrahieren Sie Daten
Wir durchlaufen nun dietextFragmentCollection
und extrahieren Sie verschiedene Eigenschaften jedes Textsegments, wie etwa seine Position, Schriftdetails und Farbe.
foreach (TextFragment textFragment in textFragmentCollection)
{
foreach (TextSegment textSegment in textFragment.Segments)
{
Console.WriteLine("Text : {0} ", textSegment.Text);
Console.WriteLine("Position : {0} ", textSegment.Position);
Console.WriteLine("XIndent : {0} ", textSegment.Position.XIndent);
Console.WriteLine("YIndent : {0} ", textSegment.Position.YIndent);
Console.WriteLine("Font - Name : {0}", textSegment.TextState.Font.FontName);
Console.WriteLine("Font - IsAccessible : {0} ", textSegment.TextState.Font.IsAccessible);
Console.WriteLine("Font - IsEmbedded : {0} ", textSegment.TextState.Font.IsEmbedded);
Console.WriteLine("Font - IsSubset : {0} ", textSegment.TextState.Font.IsSubset);
Console.WriteLine("Font Size : {0} ", textSegment.TextState.FontSize);
Console.WriteLine("Foreground Color : {0} ", textSegment.TextState.ForegroundColor);
}
}
- TextFragment: Jedes Fragment enthält Teile des gefundenen Textes.
- Textsegment: Jedes Fragment kann mehrere Segmente haben, die unterschiedliche Teile des Textes darstellen.
- TextState: Bietet detaillierte Informationen zu Schriftart, Größe und Farbe des Textes.
In dieser Schleife drucken wir Details wie den eigentlichen Text, seine Position (X- und Y-Koordinaten), die Schriftart, ob die Schriftart in das PDF eingebettet ist und die Vordergrundfarbe des Textes aus.
Abschluss
Und da haben Sie es! Sie haben jetzt erfolgreich mit Aspose.PDF für .NET nach Text in einer PDF-Datei gesucht und diesen extrahiert. Es ist unglaublich, wie viel Flexibilität Sie mit dieser Bibliothek haben. Ob Sie in einem großen Dokument nach bestimmtem Text suchen, ihn extrahieren oder seine Eigenschaften analysieren müssen, Aspose.PDF macht es zu einem Kinderspiel. Und mit dem Code, den wir behandelt haben, sind Sie gut gerüstet, um ihn an Ihre Bedürfnisse anzupassen.
Häufig gestellte Fragen
Kann ich nach mehreren Phrasen gleichzeitig suchen?
Ja, Sie können den Code so ändern, dass nach mehreren Phrasen gesucht wird, indem Sie mehrereTextFragmentAbsorber
Objekte.
Wie kann ich Text von einer bestimmten Seite extrahieren?
Sie können eine bestimmte Seite ansprechen, indem Sie denTextFragmentAbsorber
auf eine einzelne Seite anstatt auf das gesamte Dokument. Beispiel:pdfDocument.Pages[1].Accept(textFragmentAbsorber);
.
Ist Aspose.PDF für .NET kostenlos?
Aspose.PDF ist ein kommerzielles Produkt, aber Sie können es mit einemKostenlose Testversion.
Kann ich mit Aspose.PDF Bilder aus dem PDF extrahieren?
Ja, Aspose.PDF ermöglicht es Ihnen, neben Text auch Bilder zu extrahieren. Überprüfen Sie dieDokumentation für weitere Details.
Was ist, wenn ich weitere Hilfe oder Unterstützung benötige?
Hilfe erhalten Sie jederzeit vomAspose Support Forum.