Rechercher un mot dans un PDF avec Java

Vous devrez peut-être rechercher un texte spécifique dans des documents Word ou PDF. En tant que développeur Java, vous pouvez rechercher n’importe quel texte à partir de documents PDF par programmation. Dans cet article, vous apprendrez comment rechercher un mot dans des documents PDF en utilisant Java. Les sujets suivants sont abordés/couverts dans cet article:

API Java pour la recherche de texte

J’utiliserai l’API GroupDocs.Search for Java pour effectuer des recherches dans les documents PDF. Il vous permet d’effectuer des opérations de recherche de texte dans tous les formats de documents courants tels que PDF, Word, Excel, PowerPoint et bien d’autres. Vous pouvez facilement récupérer les informations requises à partir de fichiers, de documents, d’e-mails et d’archives à l’aide de cette API. Il vous permet également de créer et de fusionner plusieurs index. Vous pouvez utiliser des requêtes simples, booléennes, d’expression régulière (Regex), floues et d’autres types de requêtes pour rechercher rapidement et intelligemment dans les index.

Télécharger et configurer

Vous pouvez télécharger le JAR de l’API ou simplement ajouter la configuration pom.xml suivante dans vos applications Java basées sur Maven pour essayer les exemples de code mentionnés ci-dessous.

<repository>
  <id>GroupDocsJavaAPI</id>
  <name>API Java GroupDocs</name>
  <url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
  <groupId>com.groupdocs</groupId>
  <artifactId>groupdocs-recherche</artifactId>
  <version>20.11</version>
</dependency>

Rechercher du texte dans un PDF à l’aide de Java

Vous pouvez facilement rechercher n’importe quel texte ou un mot spécifique dans vos documents PDF en suivant les étapes simples mentionnées ci-dessous:

  • Créer un Index
  • Spécifiez le chemin d’accès au dossier d’index
  • Abonnez-vous à indexer les événements
  • Ajouter des fichiers à Index en appelant la méthode add
  • Effectuer une recherche en utilisant la méthode search
  • Utilisez SearchResult et imprimez le résumé
  • Mettez en surbrillance les résultats recherchés dans la sortie à l’aide de la méthode highlight

L’exemple de code suivant montre comment rechercher un mot dans un document PDF à l’aide de Java.

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

// Créer un nouvel index ou
// Ouvrir un index existant
Index index = new Index(indexFolder);

// Abonnez-vous aux événements de l'index
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
    }
});

// Ajouter des fichiers de manière synchrone
index.add(documentsFolder); // Synchronous indexing documents from the specified folder

// Effectuer une recherche
String query = "elementum"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

// Utiliser les résultats de recherche
// Impression du résultat
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());
}

// Surligner les occurrences dans le texte
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());
}

L’exemple de code ci-dessus doit générer la sortie suivante:

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
Rechercher un mot dans un document PDF à l'aide de Java

Rechercher un mot dans un document PDF à l’aide de Java

L’événement Index et Index

La classe Index est la classe principale pour l’indexation des documents et la recherche parmi eux. Un index peut être créé en mémoire ou sur disque en appelant le constructeur de cette classe. Je l’ai créé sur disque afin qu’il puisse être réutilisé.

Pour recevoir des informations sur les erreurs d’indexation, je me suis abonné à l’événement ErrorOccurred. Il affichera les erreurs, le cas échéant, lors de l’indexation des fichiers.

Ajouter des fichiers à l’index

La méthode add de la classe Index ajoute un fichier ou tous les fichiers d’un dossier ou de sous-dossiers par un chemin absolu ou relatif. Tous les documents sur le chemin donné seront indexés.

Effectuer une opération de recherche

La classe Index fournit diverses méthodes search pour effectuer l’opération de recherche. Vous pouvez effectuer une recherche par simple mot-clé ou en définissant une SearchQuery.

La classe SearchResult fournit des détails sur un résultat de recherche correspondant à une requête de recherche. Certaines des méthodes sont décrites ici:

Mettez en surbrillance les résultats de la recherche

La classe HtmlHighlighter facilite la mise en évidence des résultats de la recherche dans un texte de document entier formaté en HTML.

La méthode highlight de la classe Index génère une sortie HTML mettant en évidence les occurrences des termes trouvés. Vous pouvez trouver plus de détails sur “Mise en évidence des résultats de recherche” dans la documentation.

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limites d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris comment rechercher un mot dans un document PDF en utilisant Java. Vous pouvez en savoir plus sur GroupDocs.Search pour l’API Java en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également