Portable Document Format (PDF) est un format de document populaire et largement utilisé développé par Adobe. Les documents PDF peuvent contenir une variété de contenus, y compris du texte formaté, des images, des annotations, des champs de formulaire, etc. L’analyse de documents PDF par programmation est un cas d’utilisation populaire et il existe plusieurs façons d’extraire le texte. Cependant, extraire des images d’un document PDF est une tâche complexe. Cet article montre avec quelle facilité vous pouvez extraire des images de documents PDF par programmation en C#.

API .NET pour extraire des images de fichiers PDF

GroupDocs.Parser pour l’API .NET jouera son rôle dans l’extraction d’images à partir de fichiers PDF. Outre le PDF, l’API prend en charge l’analyse et l’extraction d’images à partir de documents de traitement de texte, de feuilles de calcul, de livres électroniques, de présentations, d’e-mails, d’archives ZIP et de nombreux autres formats de documents.

Vous pouvez télécharger les DLL ou le programme d’installation MSI à partir de la section des téléchargements ou installer l’API dans votre application .NET via NuGet.

PM> Install-Package GroupDocs.Parser

Étapes pour extraire des images d’un document PDF à l’aide de C#

Voyons rapidement étape par étape comment obtenir des images à partir du fichier PDF en utilisant quelques lignes de code C#.

  1. Créez un nouveau projet.
  2. Téléchargez l’API comme mentionné ci-dessus ou mettez à jour vers la dernière version de l’API.
  3. Ajoutez les espaces de noms suivants :
using System;
using System.Collections.Generic;
using System.Text;
using GroupDocs.Parser.Data;
  1. Chargez le document PDF à l’aide de la classe Parser.
// Créer une instance de la classe Parser
using (Parser parser = new Parser("path/document.pdf"))
{
  // votre code va ici.
}
  1. Extrayez des images du document à l’aide de la méthode GetImages.
// Extraire des images
IEnumerable<PageImageArea> images = parser.GetImages();

// Vérifiez si l'extraction d'images est prise en charge
if (images == null)
{
    Console.WriteLine("Images extraction isn't supported");
    return;
}
  1. Accédez à chaque image de la collection et enregistrez-la à l’aide de la méthode Save.
// Itérer sur les images récupérées
foreach (PageImageArea image in images)
{
    // Enregistrer les images
    image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", new ImageOptions(ImageFormat.Jpeg));
    imageNumber++;
}

Vous pouvez enregistrer les images dans différentes images telles que JPG, PNG, BMP, WebP ou GIF.

Code complet C# - Extraction d’images à partir de PDF

Voici le code complet qui vous permettra d’obtenir toutes les images d’un fichier PDF.

// Extraire des images d'un PDF à l'aide de C#
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    // Vérifiez si l'extraction d'image est prise en charge
    if (images == null) 
    {
        Console.WriteLine("Images extraction isn't supported");
        return;
    }
    
    ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
    int imageNumber = 0;
    
    // Itérer sur les images récupérées
    foreach (PageImageArea image in images)
    {
        // Enregistrer les images
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", options);
        imageNumber++;
    }
}

Résultats

Exemple de document PDF

Document PDF ayant des images à extraire.

Images extraites

images extraites du PDF.

Si vous en avez besoin, il est également expliqué dans un article séparé comment vous pouvez extraire des images de n’importe quelle page spécifique d’un document PDF à l’aide de C#.

Lire la suite

Vous pouvez en savoir plus sur l’API d’extraction de données .NET à l’aide de sa documentation. Vous pouvez également partager vos questions avec nous via notre forum.

Voir également