Extraire le texte du DOCX

La plupart des données sont représentées sous forme de texte visuel dans des documents, des images et sur le Web, de sorte que l’extraction de données textuelles est parfois la chose la plus nécessaire. Vous devrez peut-être extraire du texte ou des images à partir de documents Word ou PDF. En tant que développeur C#, vous pouvez facilement extraire du texte de documents par programmation. Dans cet article, vous apprendrez comment extraire du texte de documents DOC ou DOCX à l’aide de C#.

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

API C# pour l’extraction de texte

J’utiliserai l’API GroupDocs.Parser for .NET pour extraire un texte de documents DOCX. Il permet d’extraire du texte, des métadonnées et des images à partir de documents au format de fichier pris en charge tels que Word, PDF, Excel et Powerpoint. Il prend également en charge l’extraction de texte brut, formaté et structuré ainsi que les métadonnées des fichiers de formats pris en charge.

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

Install-Package GroupDocs.Parser

Extraire le texte de DOCX à l’aide de C#

Vous pouvez facilement analyser n’importe quel document et extraire du texte en suivant les étapes simples mentionnées ci-dessous:

  • Créer une instance de la classe Parser
  • Spécifiez le chemin du fichier
  • Appelez la méthode GetText de la classe Parser pour extraire le texte
  • Obtenir des résultats dans l’objet de classe TextReader
  • Afficher les résultats en appelant la méthode ReadToEnd de la classe TextReader

L’exemple de code suivant montre comment extraire du texte d’un fichier DOCX à l’aide de C#.

// Crée une instance de la classe Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// Extraire un texte dans le lecteur
using (TextReader reader = parser.GetText())
{
    // Imprimer un texte à partir du document
    // Si l'extraction de texte n'est pas prise en charge, un lecteur est nul
    Console.WriteLine(reader == null ? "Text extraction isn't supported": reader.ReadToEnd());
}
Extraire le texte de DOCX à l'aide de C#

Extraire le texte de DOCX à l’aide de C#

La classe Parser est la classe principale qui fournit des fonctionnalités d’analyse et d’extraction de texte et d’images. J’ai spécifié le chemin du fichier d’entrée dans le constructeur de cette classe.

La méthode GetText() de la classe Parser extrait un texte du document spécifié.

Obtenir du texte formaté à partir de DOCX à l’aide de C#

Vous pouvez facilement analyser un document Word et extraire du texte sans perdre la mise en forme du style en suivant les étapes simples mentionnées ci-dessous:

  • Créer une instance de la classe Parser
  • Spécifiez le chemin du fichier
  • Définir FormattedTextOptions
  • Définissez FormattedTextMode sur HTML
  • Appelez la méthode GetFormattedText de la classe Parser pour extraire le texte
  • Obtenir des résultats dans l’objet de classe TextReader
  • Afficher les résultats en appelant la méthode ReadToEnd de la classe TextReader

L’exemple de code suivant montre comment extraire du texte formaté d’un fichier DOCX à l’aide de C#.

// Créer une instance de la classe Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// Extraire un texte formaté dans le lecteur
using (TextReader reader = parser.GetFormattedText(new FormattedTextOptions(FormattedTextMode.Html)))
{
    // Imprimer un texte formaté à partir du document
    // Si l'extraction de texte formaté n'est pas prise en charge, un lecteur est nul
    Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported": reader.ReadToEnd());
}
Extraire le texte formaté de DOCX à l'aide de C#

Extraire le texte formaté de DOCX à l’aide de C#

La classe FormattedTextOptions fournit les options qui sont utilisées pour l’extraction de texte formaté comme l’extraction Mode. J’ai défini le mode d’extraction sur le HTML qui extrait le texte d’un document au format HTML.

La méthode GetFormattedText() de la classe Parser extrait un texte formaté du document spécifié.

Extraire le texte formaté des pages à l’aide de C

Vous pouvez facilement analyser un document Word et extraire du texte formaté d’une page spécifique du document en suivant les étapes simples mentionnées ci-dessous:

  • Créer une instance de la classe Parser
  • Spécifiez le chemin du fichier
  • Vérifiez si le FormattedText est vrai
  • Appelez GetDocumentInfo pour obtenir le nombre de pages
  • Vérifiez si le PageCount n’est pas zéro
  • Définir FormattedTextOptions
  • Définissez FormattedTextMode sur HTML
  • Appelez la méthode GetFormattedText pour chaque index de page pour extraire le texte
  • Obtenir des résultats dans l’objet de classe TextReader
  • Afficher les résultats en appelant la méthode ReadToEnd de la classe TextReader

L’exemple de code suivant montre comment extraire un par un le texte mis en forme des pages à l’aide de C#.

// Créer une instance de la classe Parser
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
    // Vérifiez si le document prend en charge l'extraction de texte formaté
    if (!parser.Features.FormattedText)
    {
        Console.WriteLine("Document isn't supports formatted text extraction.");
        return;
    }

    // Obtenir les informations sur le document
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    // Vérifiez si le document contient des pages
    if (documentInfo.PageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }

    // Itérer sur les pages
    for (int p = 0; p < documentInfo.PageCount; p++)
    {
        // Imprimer un numéro de page 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
        // Extraire un texte formaté dans le lecteur
        using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
        {
            // Imprimer un texte formaté à partir du document
            // Nous ignorons la vérification nulle car nous avons vérifié la prise en charge de la fonction d'extraction de texte formaté plus tôt
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
Extraire le texte formaté des pages à l'aide de C #

Extraire le texte formaté des pages à l’aide de C#

La classe Parser fournit la propriété Features représentant la classe Features. Il peut être utilisé pour vérifier si une fonctionnalité est prise en charge pour le document. Vous pouvez en savoir plus sur les fonctionnalités prises en charge dans la section “Obtenir les fonctionnalités prises en charge”.

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 extraire du texte de documents Word en utilisant C#. Vous pouvez en savoir plus sur GroupDocs.Parser pour l’API .NET en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur le forum.

Voir également