Extraire du texte à partir de documents MS Word en C#

Les documents Microsoft Word sont largement utilisés pour créer et partager du contenu textuel. Si vous travaillez avec des documents Word dans vos applications C#, vous pourriez avoir besoin de extraire du texte à partir de documents Word en C# ASP.NET et extraire du texte en préservant le formatage. Par exemple, vous pourriez vouloir analyser le texte, extraire des sections particulières d’un document, ou les combiner en un seul document. Dans cet article, nous allons explorer comment extraire du texte à partir de documents Word en C# en utilisant la meilleure bibliothèque C# pour l’extraction de texte de documents Word.

Bibliothèque C# pour extraire du texte à partir de documents Word

Aspose.Words pour .NET est une bibliothèque riche en fonctionnalités et facile à utiliser pour travailler avec des documents Word. Elle offre une large gamme de capacités, y compris l’extraction de texte de documents Word en .NET, la création, la manipulation et la conversion de documents. Avec Aspose.Words pour .NET, vous pouvez gérer divers aspects des documents Word, ce qui en fait un outil précieux pour les développeurs à la recherche d’une extraction de texte Word C# efficace.

Vous pouvez télécharger la DLL ou installer la bibliothèque directement depuis NuGet en utilisant la console du gestionnaire de packages.

PM> Install-Package Aspose.Words

Extraction de texte à partir de documents Word

Un document MS Word se compose de divers éléments tels que des paragraphes, des tableaux, des images, etc. Par conséquent, les exigences en matière d’extraction de texte peuvent varier d’un scénario à l’autre. Par exemple, vous pourriez avoir besoin d’extraire du texte à partir d’un document Word scanné en C# ou d’extraire du texte à partir d’un fichier Word en C# .NET. Chaque type d’élément dans un document Word est représenté comme un nœud. Ainsi, pour traiter un document, vous devrez interagir avec les nœuds. Commençons et voyons comment extraire du texte à partir de documents Word dans différents scénarios tout en s’assurant de gérer le formatage du texte lors de l’extraction C# efficacement.

Extraire du texte d’un DOC Word en C#

Dans cette section, nous allons implémenter un extracteur de texte C# pour les documents Word, et le flux de travail de l’extraction de texte serait le suivant :

  • Tout d’abord, nous définirons les nœuds que nous voulons inclure dans le processus d’extraction de texte.
  • Ensuite, nous extrairons le contenu entre les nœuds spécifiés (y compris ou excluant les nœuds de départ et d’arrivée).
  • Enfin, nous utiliserons un clone des nœuds extraits, par exemple, pour créer un nouveau document Word contenant le contenu extrait.

Écrivons maintenant une méthode nommée ExtractContent à laquelle nous passerons les nœuds et quelques autres paramètres pour effectuer l’extraction de texte. Cette méthode analysera le document et clonera les nœuds. Voici les paramètres que nous passerons à cette méthode :

  1. StartNode et EndNode comme points de départ et d’arrivée pour l’extraction du contenu, respectivement. Ce peuvent être des nœuds de niveau bloc (Paragraph, Table) ou de niveau en ligne (par exemple, Run, FieldStart, BookmarkStart, etc.).
    1. Pour passer un champ, vous devez passer l’objet FieldStart correspondant.
    2. Pour passer des signets, les nœuds BookmarkStart et BookmarkEnd doivent être passés.
    3. Pour les commentaires, les nœuds CommentRangeStart et CommentRangeEnd doivent être utilisés.
  2. IsInclusive définit si les marqueurs sont inclus ou non dans l’extraction. Si cette option est définie sur false et que le même nœud ou des nœuds consécutifs sont passés, alors une liste vide sera retournée.

Voici l’implémentation complète de la méthode ExtractContent qui extrait le contenu entre les nœuds passés, extrait avec précision le texte d’un document Word protégé en C#.

Certaines méthodes d’assistance sont également nécessaires pour que la méthode ExtractContent accomplisse l’opération d’extraction de texte, qui sont données ci-dessous.

Nous sommes maintenant prêts à utiliser ces méthodes et extraire du texte à partir de documents Word en C#.

Extraire du texte entre les paragraphes d’un document Word

Voyons comment extraire du contenu entre deux paragraphes dans un document Word DOCX. Les étapes suivantes exécutent cette opération en C#.

  • Tout d’abord, chargez le document Word en utilisant la classe Document.
  • Obtenez la référence au premier et au dernier paragraphes dans deux objets en utilisant la méthode Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Appelez la méthode ExtractContent(startPara, endPara, true) pour extraire les nœuds dans un objet.
  • Appelez la méthode d’assistance GenerateDocument(Document, extractedNodes) pour créer un document contenant le contenu extrait.
  • Enfin, enregistrez le document retourné en utilisant la méthode Document.Save(string).

Le code suivant montre comment extraire efficacement du texte à partir de fichiers Word volumineux en extrayant le texte entre le 7e et le 11e paragraphes dans un document Word en C#.

Extraire du texte entre différents types de nœuds

Vous pouvez également extraire du contenu entre différents types de nœuds. Pour la démonstration, extrayons le contenu entre un paragraphe et un tableau et enregistrons-le dans un nouveau document Word. Les étapes suivantes exécutent cette opération.

  • Chargez le document Word en utilisant la classe Document.
  • Obtenez la référence au premier et au dernier nœud dans deux objets en utilisant la méthode Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Appelez la méthode ExtractContent(startPara, endPara, true) pour extraire les nœuds dans un objet.
  • Appelez la méthode d’assistance GenerateDocument(Document, extractedNodes) pour créer un document contenant le contenu extrait.
  • Enregistrez le document retourné en utilisant la méthode Document.Save(string).

Le code suivant montre comment extraire du texte entre un paragraphe et un tableau en C#.

Extraire du texte entre les paragraphes en fonction des styles

Voyons maintenant comment extraire du contenu entre des paragraphes en fonction des styles. Pour la démonstration, nous allons extraire le contenu entre le premier “Titre 1” et le premier “Titre 3” dans le document Word. Les étapes suivantes montrent comment y parvenir en C#.

  • Tout d’abord, chargez le document Word en utilisant la classe Document.
  • Ensuite, extrayez les paragraphes dans un objet en utilisant la méthode d’assistance ParagraphsByStyleName(Document, “Heading 1”).
  • Extrayez les paragraphes dans un autre objet en utilisant la méthode d’assistance ParagraphsByStyleName(Document, “Heading 3”).
  • Appelez la méthode ExtractContent(startPara, endPara, true) et passez les premiers éléments dans les deux tableaux de paragraphes comme premiers et deuxièmes paramètres.
  • Appelez la méthode d’assistance GenerateDocument(Document, extractedNodes) pour créer un document contenant le contenu extrait.
  • Enfin, enregistrez le document retourné en utilisant la méthode Document.Save(string).

Le code suivant montre comment extraire le contenu entre des paragraphes en fonction des styles.

En savoir plus sur l’extraction de texte

Vous pouvez explorer d’autres scénarios de l’API .NET pour l’extraction de texte de documents Word en utilisant cet article de documentation.

Obtenez une bibliothèque gratuite d’extracteur de texte Word

Vous pouvez obtenir une licence temporaire gratuite pour extraire du texte sans limitations d’évaluation.

Conclusion

Aspose.Words pour .NET est une bibliothèque polyvalente qui simplifie le processus de C# d’extraction de texte à partir de Word tout en préservant le formatage. Avec ses fonctionnalités étendues et son API facile à utiliser, vous pouvez travailler efficacement avec des documents Word et automatiser différents scénarios de gestion des caractères spéciaux lors de l’extraction de texte Word en C#. Que vous construisiez des applications nécessitant le traitement de documents Word ou que vous souhaitiez simplement extraire du texte, Aspose.Words pour .NET est un outil précieux pour les développeurs.

Vous pouvez explorer d’autres fonctionnalités de Aspose.Words pour .NET en utilisant la documentation. Si vous avez des questions, n’hésitez pas à nous le faire savoir via notre forum.

Voir aussi

Astuce : Vous voudrez peut-être vérifier Aspose Convertisseur PowerPoint vers Word car il démontre le processus populaire de conversion de présentations en documents Word.