Extraire des images à l'aide de PdfExtractor

Extraire des images de l’ensemble du PDF vers des fichiers (Facades)

La classe PdfExtractor vous permet d’extraire des images d’un fichier PDF. Tout d’abord, vous devez créer un objet de la classe PdfExtractor et lier le fichier PDF d’entrée en utilisant la méthode BindPdf. Après cela, appelez la méthode ExtractImage pour extraire toutes les images en mémoire. Une fois les images extraites, vous pouvez obtenir ces images avec l’aide des méthodes HasNextImage et GetNextImage. Vous devez parcourir toutes les images extraites à l’aide d’une boucle while. Pour enregistrer les images sur le disque, vous pouvez appeler la surcharge de la méthode GetNextImage qui prend le chemin du fichier comme argument. Le code suivant vous montre comment extraire des images de l’ensemble du PDF vers des fichiers.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractImagesWholePDF()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open PDF document
    using (var extractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        extractor.BindPdf(dataDir + "sample_cats_dogs.pdf");

        // Extract all the images
        extractor.ExtractImage();

        // Get all the extracted images
        while (extractor.HasNextImage())
        {
            extractor.GetNextImage(dataDir + DateTime.Now.Ticks.ToString() + "_out.jpg");
        }
    }
}

Extraire des images de l’ensemble du PDF vers des flux (Facades)

La classe PdfExtractor vous permet d’extraire des images d’un fichier PDF vers des flux. Tout d’abord, vous devez créer un objet de la classe PdfExtractor et lier le fichier PDF d’entrée en utilisant la méthode BindPdf. Après cela, appelez la méthode ExtractImage pour extraire toutes les images en mémoire. Une fois les images extraites, vous pouvez obtenir ces images avec l’aide des méthodes HasNextImage et GetNextImage. Vous devez parcourir toutes les images extraites à l’aide d’une boucle while. Pour enregistrer les images dans un flux, vous pouvez appeler la surcharge de la méthode GetNextImage qui prend un flux comme argument. Le code suivant vous montre comment extraire des images de l’ensemble du PDF vers des flux.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractImagesWholePDFStreams()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open PDF document
    using (var extractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        extractor.BindPdf(dataDir + "sample_cats_dogs.pdf");

        // Extract images
        extractor.ExtractImage();
        // Get all the extracted images
        while (extractor.HasNextImage())
        {
            // Read image into memory stream
            MemoryStream memoryStream = new MemoryStream();
            extractor.GetNextImage(memoryStream);

            // Write to disk, if you like, or use it otherwise
            using (FileStream fileStream = new FileStream(dataDir + DateTime.Now.Ticks.ToString() + "_out.jpg", FileMode.Create))
            {
                memoryStream.WriteTo(fileStream);
            }
        }
    }
}

Extraire des images d’une page particulière d’un PDF (Facades)

Vous pouvez extraire des images d’une page particulière d’un fichier PDF. Pour ce faire, vous devez définir les propriétés StartPage et EndPage sur la page particulière dont vous souhaitez extraire les images. Tout d’abord, vous devez créer un objet de la classe PdfExtractor et lier le fichier PDF d’entrée en utilisant la méthode BindPdf. Deuxièmement, vous devez définir les propriétés StartPage et EndPage. Après cela, appelez la méthode ExtractImage pour extraire toutes les images en mémoire. Une fois les images extraites, vous pouvez obtenir ces images avec l’aide des méthodes HasNextImage et GetNextImage. Vous devez parcourir toutes les images extraites à l’aide d’une boucle while. Vous pouvez soit enregistrer les images sur le disque, soit dans un flux. Vous devez simplement appeler la surcharge appropriée de la méthode GetNextImage. Le code suivant vous montre comment extraire des images d’une page particulière d’un PDF vers des flux.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractImagesParticularPage()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open PDF document
    using (var extractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        extractor.BindPdf(dataDir + "sample_cats_dogs.pdf");

        // Set StartPage and EndPage properties to the page number to
        // You want to extract images from
        extractor.StartPage = 2;
        extractor.EndPage = 2;

        // Extract images
        extractor.ExtractImage();
        // Get extracted images
        while (extractor.HasNextImage())
        {
            // Read image into memory stream
            MemoryStream memoryStream = new MemoryStream();
            extractor.GetNextImage(memoryStream);

            // Write to disk, if you like, or use it otherwise
            using (FileStream fileStream = new FileStream(dataDir + DateTime.Now.Ticks.ToString() + "_out.jpg", FileMode.Create))
            {
                memoryStream.WriteTo(fileStream);
            }
        }
    }
}

Extraire des images d’une plage de pages d’un PDF (Facades)

Vous pouvez extraire des images d’une plage de pages d’un fichier PDF. Pour ce faire, vous devez définir les propriétés StartPage et EndPage sur la plage de pages dont vous souhaitez extraire les images. Tout d’abord, vous devez créer un objet de la classe PdfExtractor et lier le fichier PDF d’entrée en utilisant la méthode BindPdf. Deuxièmement, vous devez définir les propriétés StartPage et EndPage. Après cela, appelez la méthode ExtractImage pour extraire toutes les images en mémoire. Une fois les images extraites, vous pouvez obtenir ces images avec l’aide des méthodes HasNextImage et GetNextImage. Vous devez parcourir toutes les images extraites à l’aide d’une boucle while. Vous pouvez soit enregistrer les images sur le disque, soit dans un flux. Vous devez simplement appeler la surcharge appropriée de la méthode GetNextImage. Le code suivant vous montre comment extraire des images d’une plage de pages d’un PDF vers des flux.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractImagesRangePages()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open input PDF
    using (var extractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        extractor.BindPdf(dataDir + "sample_cats_dogs.pdf");

        // Set StartPage and EndPage properties to the page number to
        // You want to extract images from
        extractor.StartPage = 2;
        extractor.EndPage = 2;

        // Extract images
        extractor.ExtractImage();

        // Get extracted images
        while (extractor.HasNextImage())
        {
            // Read image into memory stream
            MemoryStream memoryStream = new MemoryStream();
            extractor.GetNextImage(memoryStream);

            // Write to disk, if you like, or use it otherwise
            using (FileStream fileStream = new
            FileStream(dataDir + DateTime.Now.Ticks.ToString() + "_out.jpg", FileMode.Create))
            {
                memoryStream.WriteTo(fileStream);
            }
        }
    }
}

Extraire des images en utilisant le mode d’extraction d’images (Facades)

La classe PdfExtractor vous permet d’extraire des images d’un fichier PDF. Aspose.PDF prend en charge deux modes d’extraction ; le premier est ActuallyUsedImage qui extrait les images réellement utilisées dans le document PDF. Le deuxième mode est DefinedInResources qui extrait les images définies dans les ressources du document PDF (mode d’extraction par défaut). Tout d’abord, vous devez créer un objet de la classe PdfExtractor et lier le fichier PDF d’entrée en utilisant la méthode BindPdf. Après cela, spécifiez le mode d’extraction d’images en utilisant la propriété PdfExtractor.ExtractImageMode. Ensuite, appelez la méthode ExtractImage pour extraire toutes les images en mémoire en fonction du mode que vous avez spécifié. Une fois les images extraites, vous pouvez obtenir ces images avec l’aide des méthodes HasNextImage et GetNextImage. Vous devez parcourir toutes les images extraites à l’aide d’une boucle while. Pour enregistrer les images sur le disque, vous pouvez appeler la surcharge de la méthode GetNextImage qui prend le chemin du fichier comme argument.

Le code suivant vous montre comment extraire des images d’un fichier PDF en utilisant l’option ExtractImageMode.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExtractImagesImageExtractionMode()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open PDF document
    using (var extractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        extractor.BindPdf(dataDir + "sample_cats_dogs.pdf");

        // Specify Image Extraction Mode
        //extractor.ExtractImageMode = ExtractImageMode.ActuallyUsed;
        extractor.ExtractImageMode = Aspose.Pdf.ExtractImageMode.DefinedInResources;

        // Extract Images based on Image Extraction Mode
        extractor.ExtractImage();

        // Get all the extracted images
        while (extractor.HasNextImage())
        {
            extractor.GetNextImage(dataDir + DateTime.Now.Ticks.ToString() + "_out.png", System.Drawing.Imaging.ImageFormat.Png);
        }
    }
}

Pour vérifier si le PDF contient du texte ou des images, utilisez le code suivant :

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CheckIfPdfContainsTextOrImages()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Instantiate a memoryStream object to hold the extracted text from Document
    MemoryStream ms = new MemoryStream();
    // Instantiate PdfExtractor object
    using (var extractor = new Aspose.Pdf.Facades.PdfExtractor())
    {
        // Bind PDF document
        extractor.BindPdf(dataDir + "FilledForm.pdf");
        // Extract text from the input PDF document
        extractor.ExtractText();
        // Save the extracted text to a text file
        extractor.GetText(ms);
        // Check if the MemoryStream length is greater than or equal to 1

        bool containsText = ms.Length >= 1;

        // Extract images from the input PDF document
        extractor.ExtractImage();

        // Calling HasNextImage method in while loop. When images will finish, loop will exit
        bool containsImage = extractor.HasNextImage();

        // Now find out whether this PDF is text only or image only

        if (containsText && !containsImage)
        {
            Console.WriteLine("PDF contains text only");
        }
        else if (!containsText && containsImage)
        {
            Console.WriteLine("PDF contains image only");
        }
        else if (containsText && containsImage)
        {
            Console.WriteLine("PDF contains both text and image");
        }
        else if (!containsText && !containsImage)
        {
            Console.WriteLine("PDF contains neither text or nor image");
        }
    }
}