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
- Rechercher du texte dans des documents PDF à l’aide de C#
- Recherche de texte sensible à la casse dans un PDF avec C#
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
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:
- La propriété OccurrenceCount indique le nombre total d’occurrences trouvées.
- La propriété DocumentCount fournit le nombre de documents trouvés dans l’index.
- La méthode GetFoundDocument(int) renvoie le FoundDocument par son index.
- La propriété FoundDocument.OccurrenceCount renvoie le nombre d’occurrences trouvées dans le document.
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.