Möglicherweise müssen Sie in Word- oder PDF-Dokumenten nach einem bestimmten Text suchen. Als Java-Entwickler können Sie beliebigen Text in PDF-Dokumenten programmgesteuert durchsuchen. In diesem Artikel erfahren Sie, wie Sie mit Java nach einem Wort in PDF-Dokumenten suchen.
Die folgenden Themen werden in diesem Artikel behandelt/behandelt:
Java-API zum Suchen von Text
Ich werde die API GroupDocs.Search for Java für die Suche in PDF-Dokumenten verwenden. Es ermöglicht Ihnen, Textsuchvorgänge in allen gängigen Dokumentformaten wie PDF, Word, Excel, PowerPoint und vielen mehr durchzuführen. Mit dieser API können Sie Ihre erforderlichen Informationen ganz einfach aus Dateien, Dokumenten, E-Mails und Archiven abrufen. Es ermöglicht Ihnen auch, mehrere Indizes zu erstellen und zusammenzuführen. Sie können einfache, boolesche, reguläre Ausdrücke (Regex), Fuzzy und andere Arten von Abfragen verwenden, um Indizes schnell und intelligent zu durchsuchen.
Herunterladen und konfigurieren
Sie können das JAR der API herunterladen oder einfach die folgende pom.xml-Konfiguration zu Ihren Maven-basierten Java-Anwendungen hinzufügen, um die unten aufgeführten Codebeispiele auszuprobieren.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>20.11</version>
</dependency>
Suchen Sie Text in PDF mit Java
Sie können ganz einfach jeden Text oder ein bestimmtes Wort in Ihren PDF-Dokumenten suchen, indem Sie die folgenden einfachen Schritte befolgen:
- Erstellen Sie einen Index
- Geben Sie den Pfad zum Indexordner an
- Abonnieren Sie Indexereignisse
- Fügen Sie Dateien zum Index hinzu, indem Sie die Methode add aufrufen
- Führen Sie eine Suche mit der Methode Suche durch
- Verwenden Sie SearchResult und drucken Sie die Zusammenfassung
- Markieren Sie die Suchergebnisse in der Ausgabe mit der Methode highlight.
Das folgende Codebeispiel zeigt, wie Sie mit Java nach einem Wort in einem PDF-Dokument suchen.
String indexFolder = "C:\\Index\\"; // Specify the path to the index folder
String documentsFolder = "C:\\Files\\"; // Specify the path to a folder containing documents to search
// Erstellen Sie einen neuen Index oder
// Öffnen Sie einen vorhandenen Index
Index index = new Index(indexFolder);
// Abonnieren Sie Indexereignisse
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
public void invoke(Object sender, IndexErrorEventArgs args) {
System.out.println(args.getMessage()); // Writing error messages to the console
}
});
// Dateien synchron hinzufügen
index.add(documentsFolder); // Synchronous indexing documents from the specified folder
// Suche durchführen
String query = "elementum"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index
// Suchergebnisse verwenden
// Drucken des Ergebnisses
System.out.println("Documents found: " + result.getDocumentCount());
System.out.println("Total occurrences found: " + result.getOccurrenceCount());
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
System.out.println("\tOccurrences: " + document.getOccurrenceCount());
}
// Markieren Sie Vorkommnisse im Text
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0); // Getting the first found document
String path = "C:\\Output\\Highlighted.html";
OutputAdapter outputAdapter = new FileOutputAdapter(path); // Creating the output adapter to a file
HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the HtmlHighlighter object
index.highlight(document, highlighter); // Generating output HTML formatted document with highlighted search results
System.out.println();
System.out.println("Generated HTML file can be opened with Internet browser.");
System.out.println("The file can be found by the following path:");
System.out.println(Paths.get(path).toAbsolutePath().toString());
}
Das obige Codebeispiel soll die folgende Ausgabe generieren:
Documents found: 1
Total occurrences found: 6
Document: C:\Files\Lorem ipsum.pdf
Occurrences: 6
Generated HTML file can be opened with Internet browser.
The file can be found by the following path:
C:\Output\Highlighted.html
Der Index und das Indexereignis
Die Klasse Index ist die Hauptklasse zum Indizieren von Dokumenten und zum Durchsuchen dieser. Ein Index kann im Arbeitsspeicher oder auf der Festplatte erstellt werden, indem der Konstruktor dieser Klasse aufgerufen wird. Ich habe es auf Diskette erstellt, damit es wiederverwendet werden kann.
Um Informationen zu Indizierungsfehlern zu erhalten, habe ich das Ereignis ErrorOccurred abonniert. Es zeigt die Fehler an, falls während der Indizierung der Dateien aufgetreten sind.
Dateien zum Index hinzufügen
Die Methode add der Klasse Index fügt eine Datei oder alle Dateien in einem 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 nach einem einfachen Schlüsselwort suchen oder eine Suchanfrage definieren.
Die Klasse SearchResult stellt Details zu einem Suchergebnis bereit, das einer Suchabfrage entspricht. Einige der Methoden sind hier beschrieben:
- Die Methode getOccurrenceCount() gibt die Gesamtzahl der gefundenen Vorkommen zurück
- Die Methode getDocumentCount() liefert die Anzahl der im Index gefundenen Dokumente
- Die Methode getFoundDocument(int) gibt das FoundDocument
- Die Methode FoundDocument.getOccurrenceCount() gibt die Anzahl der im Dokument gefundenen Vorkommen zurück
Markieren Sie die Suchergebnisse
Die Klasse HtmlHighlighter erleichtert das Hervorheben der Suchergebnisse in einem gesamten in HTML formatierten Dokumenttext.
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.
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 Java nach einem Wort in einem PDF-Dokument suchen. Weitere Informationen zu GroupDocs.Search for Java API finden Sie in der Dokumentation. Bei Unklarheiten können Sie uns gerne im Forum kontaktieren.