Rechercher un mot dans un PDF à l'aide de C#

Vous devrez peut-être rechercher une information particulière, une phrase textuelle ou un mot dans vos documents. En tant que développeur C#, vous pouvez facilement rechercher n’importe quel texte à partir de documents PDF par programmation dans vos applications .NET. Dans cet article, vous apprendrez comment rechercher du texte dans des documents PDF à l’aide de C#.

Les sujets suivants sont abordés/couverts dans cet article:

API C# pour la recherche de texte

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

Vous pouvez soit télécharger la DLL de l’API, soit l’installer à l’aide de NuGet.

Install-Package GroupDocs.Search

Rechercher du texte dans des documents PDF à l’aide de C#

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

  • Créer une instance de la classe Index
  • Spécifiez le chemin d’accès au dossier d’index
  • Abonnez-vous aux index événements
  • Ajoutez des fichiers PDF à l’index en appelant la méthode Add()
  • Définir une requête de recherche
  • Effectuer une recherche à l’aide de la méthode Search() avec requête de recherche
  • Utilisez le 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 du texte dans des documents PDF à l’aide de C#.

// Spécifiez le chemin d'accès au dossier d'index
string indexFolder = @"C:\Files\Index\";

// Spécifiez le chemin d'accès à un dossier contenant des documents PDF à rechercher
string documentsFolder = @"C:\Files\Files\"; 

// créer ou charger un index
Index index = new Index(indexFolder);

// Abonnez-vous aux événements de l'index
index.Events.ErrorOccurred += (sender, args) =>
{
    // Writing error messages to the console
    Console.WriteLine(args.Message);
};

// Ajouter des fichiers de manière synchrone
// Documents d'indexation synchrone à partir du dossier spécifié
index.Add(documentsFolder); 

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

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

// Surligner les occurrences dans le texte
if (result.DocumentCount > 0)
{
    // Getting the first found document
    FoundDocument document = result.GetFoundDocument(0);

    string path = documentsFolder + "Highlighted.html";

    // Creating the output adapter to a file
    OutputAdapter outputAdapter = new FileOutputAdapter(path);

    // Creating the highlighter object
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter);

    // Generating output HTML formatted document with highlighted search results
    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);
}

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

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
Recherche-texte-ou-mot-dans-PDF-à l'aide de CSharp

Mise en surbrillance du texte recherché dans les documents PDF à l’aide de C #

L’événement Index et Index

La classe Index est la classe principale qui fournit des fonctionnalités pour indexer les documents et les parcourir. Un index peut être créé en mémoire ou sur disque en appelant le constructeur de cette classe. Dans l’exemple de code ci-dessus, j’ai créé l’index sur le disque afin qu’il puisse être réutilisé.

L’événement ErrorOccurred affiche les erreurs éventuelles lors de l’indexation des fichiers. Vous devez donc vous y abonner afin de recevoir des informations sur les erreurs d’indexation.

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 spécifiés 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 en fournissant un 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. Les méthodes et propriétés suivantes de cette classe facilitent l’obtention de détails sur les résultats de la recherche:

Mettez en surbrillance les résultats de la recherche

La classe HtmlHighlighter met en évidence les résultats de la recherche dans un texte entier du document 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.

Recherche de texte sensible à la casse dans un PDF avec C#

Vous pouvez rechercher n’importe quelle phrase de texte spécifique ou un mot en tenant compte des lettres majuscules et minuscules dans vos documents PDF par programme en suivant les étapes simples mentionnées ci-dessous:

  • Créer une instance de la classe Index
  • Spécifiez le chemin d’accès au dossier d’index
  • Ajoutez des fichiers PDF à l’index en appelant la méthode Add()
  • Créez une instance de SearchOptions
  • Définissez la propriété UseCaseSensitiveSearch sur true
  • Définir une requête de recherche
  • Effectuer une recherche à l’aide de la méthode Search() avec requête de recherche and the SearchOptions
  • Utilisez le SearchResult et imprimez le résumé

L’exemple de code suivant montre comment effectuer une recherche de texte sensible à la casse dans un document PDF à l’aide de C#.

// Spécifiez le chemin d'accès au dossier d'index
string indexFolder = @"C:\Files\Index\";

// Spécifiez le chemin d'accès à un dossier contenant des documents PDF à rechercher
string documentsFolder = @"C:\Files\Files\";

// Création d'un index dans le dossier spécifié
Index index = new Index(indexFolder);

// Indexation de documents à partir du dossier spécifié
index.Add(documentsFolder); 

// Définir les options de recherche
SearchOptions options = new SearchOptions();
options.UseCaseSensitiveSearch = true; // Enabling case sensitive search

// mot de recherche
string query = "Vestibulum";

// Effectuer la recherche
SearchResult result = index.Search(query, options);

// Impression du résultat
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

La classe SearchOptions fournit des options pour effectuer les opérations de recherche. La propriété UseCaseSensitiveSearch de cette classe vous permet d’effectuer une recherche sensible à la casse pour un mot ou un texte.

Obtenez une licence gratuite

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

Conclusion

Dans cet article, vous avez appris comment rechercher du texte dans un document PDF à l’aide de C#. Vous avez également appris comment effectuer une recherche de texte sensible à la casse dans un document PDF à l’aide de C#. Vous pouvez en savoir plus sur GroupDocs.Search pour l’API .NET en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également