Dans le article précédent, nous avons expliqué comment extraire des images de documents en Java. Aujourd’hui, nous chercherons à atteindre le même objectif en utilisant C#. Pas de soucis si vous n’avez pas visité le dernier message. Dans cet article, nous allons apprendre à extraire par programme des images de documents PDF, Excel, PowerPoint et Word dans une application C# à l’aide de l’API .NET d’analyse de documents.

Extraire des images de documents dans .NET

Les sujets suivants seront abordés ici :

API .NET d’extraction d’images, de texte et de métadonnées

Analyser des documents et extraire des données dans .NET

GroupDocs.Parser for .NET est une API .NET d’analyse de documents et d’extraction de données. Il prend en charge l’analyse de documents et l’extraction d’images, de texte et de métadonnées à partir de documents de traitement de texte, de feuilles de calcul, de présentations, d’archives et documents par e-mail. À la fin de l’article, les formats de document sont mentionnés qui sont pris en charge par l’API pour l’extraction d’images.

Dans cet article, nous utiliserons cette API, je vous recommande donc de télécharger ses binaires ou d’installer l’API à partir de NuGet pour préparer l’environnement.

Extraire des images de documents PDF en C#

Document PDF pour extraire des images

Vous pouvez facilement récupérer toutes les images de n’importe quel document PDF en suivant ces étapes simples.

  1. Instanciez l’objet de classe Parser avec le document source.
  2. Appelez la méthode GetImages de la classe Parser pour obtenir la collection de toutes les images dans les objets PageImageArea.
  3. Itérer sur PageImageArea pour obtenir chaque image.
  4. Enregistrez les images sur le disque en utilisant la méthode Save de PageImageArea.

Les images extraites peuvent être enregistrées aux formats BMP, GIF, JPEG, PNG et WebP. Le code complet est présenté ci-dessous pour illustrer l’ensemble des étapes.

// Extraire des images de Word, Excel, PPT, PDF en C# à l'aide de GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;
    // Itérer sur les images récupérées
    foreach (PageImageArea image in images)
    {
        // Enregistrer l'image et imprimer l'index des pages, le rectangle et le type d'image :
        Console.WriteLine(string.Format("Page: {0}, R: {1}, Type: {2}", image.Page.Index, image.Rectangle, image.FileType));
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
        imageNumber++;
    }
}
Images extraites du document à l'aide de GroupDocs.Parser

Extraire des images de fichiers Word, Excel, PowerPoint en C#

Non limité au seul format PDF, nous pouvons extraire toutes les images des documents de traitement de texte, des tableurs, des présentations, avec la base de code inchangée. Changez simplement le chemin du document source avec l’extension de fichier, votre document sera analysé pour extraire et enregistrer toutes les images sur le disque.

using (Parser parser = new Parser("path/document.docx")) // Word Document
// using (Parser parser = new Parser("path/document.xlsx")) // Excel Spreadhseet
// using (Parser parser = new Parser("path/document.pptx")) // Presentation
// using (Parser parser = new Parser("path/document.pdf")) // PDF Document

Extraction d’image à partir d’une page de document spécifique en C#

Si vous souhaitez extraire des images d’une page spécifique du document, cela peut être fait facilement en utilisant les étapes ci-dessous et le code C#.

  • Obtenez les informations sur le document à l’aide de la méthode GetDocumentInfo.
  • À partir des informations sur le document, retirez le total PageCount et d’autres informations.
  • Utilisez la méthode GetImages(pageIndex) et transmettez-lui l’index de votre page cible.
  • Pour enregistrer les images récupérées, parcourez la collection d’images et enregistrez l’image individuelle à l’aide de la méthode Enregistrer.
// Extraire des images d'une page spécifique de Word, Excel, PowerPoint, PDF en C # à l'aide de GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    // Obtenir les informations sur le document
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;

    // Itérer sur les pages
    for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
    {
        // Imprimer un numéro de page 
        Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
        // Itérer sur les images. Ignorer la vérification nulle dans l'exemple
        foreach (PageImageArea image in parser.GetImages(pageIndex))
        {
            // Imprimer un rectangle et un type d'image
            Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
            image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
            imageNumber++;
        }
    }
}

Formats pris en charge pour l’extraction d’images en C#

Voici les formats de document pris en charge par l’API GroupDocs.Parser for .NET pour l’extraction d’images.

Type de document Formats de fichier
Documents de traitement de texte DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Feuilles de calcul XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS
Présentations PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Documents portables PDF
E-mails EML, EMLX, MSG
Archives ZIP

En savoir plus sur GroupDocs.Parser

Parlons un peu plus @ Forum d’assistance gratuit

Articles Liés