Solution C# pour la conversion de PDF en image

2024-02-01 08:43:54

C# Solution for PDF to Image Conversion

Les fichiers PDF sont largement utilisés dans le travail quotidien en raison de leur mise en page stable, de leur transférabilité facile et de leur grande lisibilité. Dans certains cas, vous devrez peut-être convertir un PDF en images. L'enregistrement du contenu sous forme d'images accélère non seulement le chargement, mais réduit également le risque de modification accidentelle. De plus, si vous souhaitez intégrer des fichiers ou des pages PDF dans d'autres documents ou pages Web, les convertir dans des formats d'image spécifiés est un excellent choix. Ce passage couvre les détails de en utilisant C# pour convertir un PDF en image. Et vous pouvez facilement convertir des PDF aux formats d'image souhaités avec du code C# tout en préservant la fidélité visuelle du contenu original.

Bibliothèque C# pour la conversion PDF

Cet article montre comment convertir un PDF en image à l'aide de Spire.PDF for .NET, une bibliothèque de traitement PDF fiable qui vous permet de manipuler et de convertir des fichiers PDF dans des applications .NET. Avec lui, vous pouvez même ajuster les propriétés de l'image, telles que sa taille et ses pixels, lors de la conversion de PDF en image.
En plus de l'image, cette bibliothèque vous permet également de convertir des PDF en Word, des PDF en HTML, des PDF en XPS, etc.

Vous pouvez soit le télécharger et référencer le fichier DLL manuellement, soit l'installer via NuGet à l'aide de la commande suivante :

PM> Install-Package Spire.PDF

Classification des formats d'images

En infographie, les images peuvent être classées en deux grandes catégories :

  • Images bitmap sont composés d’une grille de pixels individuels, où chaque pixel se voit attribuer une couleur spécifique. Les formats d'image bitmap courants incluent PNG, JPG, BMP, EMF et TIFF.
  • Les graphiques vectoriels, quant à eux, représentent des images à l'aide d'équations mathématiques et de formes géométriques telles que des lignes, des courbes et des polygones. Formats graphiques vectoriels courants inclure SVG et EPS.

Actuellement, Spire.PDF for .NET prend en charge les formats PNG/JPG/BMP/EMF/TIFF/SVG. Ensuite, je vais vous donner les détails de chaque conversion.

Convertir un PDF en PNG/JPG/BMP/EMF/TIFF en C#

Pas

  1. Créez une instance PdfDocument et chargez un fichier PDF à partir du disque à l'aide de la méthode LoadFromFile().
  2. Appelez la méthode SaveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY) pour convertir la page spécifiée en image.
  3. Enfin, enregistrez les images sous forme de fichiers JPG à l'aide de la méthode Image.Save (string filename, ImageFormat format). Dans ce cas, je prends comme exemple PDF vers JPG. Vous pouvez également modifier le format si vous le souhaitez.

Exemple de code

  • C#
using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    using System.Drawing.Imaging;
    
    namespace PDFtoImage
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file
                pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");
    
                //Convert the first page to an image and set the image Dpi
                Image image = pdf.SaveAsImage(0, PdfImageType.Bitmap, 500, 500);
    
                //Save images as JPG format to a specified folder 
                image.Save("C:\\Users\\Administrator\\Desktop\\Image\\ToImage.jpg", ImageFormat.Jpeg);
    
                //Close the document
                pdf.Close();
            }
        }
    }

Convertir un PDF en SVG en C#

Pas

  1. Créez une instance PdfDocument et chargez un fichier PDF à partir du disque à l'aide de la méthode LoadFromFile().
  2. Convertissez la première page en SVG à l'aide de la méthode SaveToFile(string filename, int startIndex, int endIndex, FileFormat fileFormat). Vous pouvez spécifier l'index de page que vous souhaitez convertir dans le paramètre.

Exemple de code

  • C#
using Spire.Pdf;
    
    namespace PDFtoSVG
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file
                pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");
    
                //Convert the first page to SVG
                pdf.SaveToFile("C:\\Users\\Administrator\\Desktop\\Image\\ToImage.svg", 0, 0, FileFormat.SVG);
    
                //Close the document
                pdf.Close();
            }
        }
    }

Convertir un PDF en TIFF de plusieurs pages en C#

Comparé à d'autres formats d'image, TIFF permet de stocker plusieurs images ou pages dans un seul fichier. Cette fonctionnalité en fait un choix populaire parmi les utilisateurs dans certains cas.

Dans cette section, je vais vous montrer comment convertir un fichier PDF en un fichier TIFF multipage. Pour réaliser cette conversion, nous pouvons personnaliser les méthodes suivantes.
  • La méthode SaveAsImage() prend en charge la conversion de chaque page PDF en image, puis renvoie un tableau d'images.
  • La méthode GetEncoderInfo() prend en charge la recherche et le renvoi des informations d’encodeur d’image correspondantes en fonction du type MIME donné.
  • La méthode JoinTiffImages() est utilisée pour fusionner plusieurs images en un seul fichier TIFF. Il fonctionne en parcourant chaque image du tableau d'images et en l'enregistrant en fonction des paramètres d'encodeur spécifiés.

Pas

  1. Créez une instance PdfDocument et chargez un fichier PDF à partir du disque à l'aide de la méthode LoadFromFile().
  2. Appelez la méthode SaveAsImage() pour convertir chaque page du PDF en image et enregistrez-la dans le tableau d’images.
  3. Enfin, appelez la méthode JoinTiffImages() pour fusionner les images TIFF converties dans un fichier TIFF multipage.

Exemple de code

  • C#
using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using Spire.Pdf;
    namespace SavePdfAsTiff
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                // Load the PDF file
                pdf.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf");
    
                // Convert PDF pages to images and save them as an image array
                Image[] images = SaveAsImage(pdf);
    
                // Merge the converted TIFF images into a multi-page TIFF file
                JoinTiffImages(images, "C:\\Users\\Administrator\\Desktop\\Image\\ToImage.tiff", EncoderValue.CompressionLZW);
            }
    
            private static Image[] SaveAsImage(PdfDocument pdf)
            {
                // Create an image array with the size equal to the number of PDF pages
                Image[] images = new Image[pdf.Pages.Count];
    
                //Iterate through each page of PDF
                for (int i = 0; i < pdf.Pages.Count; i++)
                {
                    //Convert these pages to images 
                    images[i] = pdf.SaveAsImage(i);
                }
                return images;
            }
    
            private static ImageCodecInfo GetEncoderInfo(string mimeType)
            {
                // Get all available image encoders
                ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
                for (int j = 0; j < encoders.Length; j++)
                {
                    // Find the encoder that matches the specified mime type
                    if (encoders[j].MimeType == mimeType)
                        return encoders[j];
                }
                // An exception is thrown if no matching encoder is found
                throw new Exception(mimeType + " mime type not found in ImageCodecInfo");
            }
    
            public static void JoinTiffImages(Image[] images, string outFile, EncoderValue compressEncoder)
            {
                //Set the parameters of the image encoder
                Encoder enc = Encoder.SaveFlag;
                EncoderParameters ep = new EncoderParameters(2);
                ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
                ep.Param[1] = new EncoderParameter(Encoder.Compression, (long)compressEncoder);
    
                // Initialize the first image as the base for merging
                Image pages = images[0];
                int frame = 0;
    
                // Get the encoder information for TIFF format
                ImageCodecInfo info = GetEncoderInfo("image/tiff");
    
                // Iterate through each image
                foreach (Image img in images)
                {
                    if (frame == 0)
                    {
                        // If it's the first frame, set it as the current base image
                        pages = img;
    
                        // Save the first frame using the specified encoder parameters
                        pages.Save(outFile, info, ep);
                    }
                    else
                    {
                        // For intermediate frames, update the encoder parameter to indicate a new page
                        ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
    
                        // Save the intermediate frame
                        pages.SaveAdd(img, ep);
                    }
                    if (frame == images.Length - 1)
                    {
                        // If it's the last frame, flush the encoder parameters to close the file
                        ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
                        pages.SaveAdd(ep);
                    }
                    frame++;
                }
            }
        }
    }

Essai gratuit de la bibliothèque C#

Spire.PDF for .NET offre une utilisation gratuite pour aider les utilisateurs à mieux évaluer les fonctionnalités du produit sans restrictions. Vous pouvez obtenir un Licence temporaire gratuite de 30 jours à partir du lien suivant pour convertir un PDF en image en C#.

Conclusion

Dans cet article, vous avez appris à convertir un PDF en formats d'image populaires à l'aide de C#. Spire.PDF for .NET peut également vous aider dans d'autres tâches de traitement PDF, telles que créer un PDF, fusionner un PDF, comparer un PDF, etc. En un mot, cette bibliothèque simplifie le processus et permet aux développeurs de se concentrer sur la création d'applications puissantes impliquant des tâches de manipulation de PDF.

Voir également