Comment ajouter ou convertir des images en PDF avec C# et VB.NET
Tags: csharp, image, pdf, dotnet
Published: 2023-08-18 07:23:57

Avoir des images au format de document portable (PDF) peut être utile pour partager des photos numériquement, combiner des images et du texte en un seul fichier, archiver des images, et bien plus encore. Dans cet article, nous allons voir comment **ajouter ou convertir des images en PDF avec C# et VB.NET**.

## Installer la bibliothèque requise
Il existe de nombreuses bibliothèques .NET qui vous permettent de convertir ou d'ajouter des images à des fichiers PDF de manière programmée. L'une des bibliothèques couramment utilisées est [Free Spire.PDF for .NET](https://www.e-iceblue.com/Introduce/free-pdf-component.html).

Avant de commencer, vous devrez importer le fichier DLL de la bibliothèque dans votre application en tant que référence. Vous pouvez le faire en installant la bibliothèque via NuGet en suivant ces étapes :

1. Ouvrez la **Package Manager Console**
2. Exécutez cette commande : **Install-Package FreeSpire.PDF**

## Ajouter une image à un PDF avec C# et VB.NET
Lorsque vous ajoutez des images à des documents PDF, vous avez un contrôle précis sur le placement et l'échelle des images. Cela permet d'ajouter stratégiquement des images aux PDF de manière personnalisée.

Voici un exemple simple qui montre comment ajouter une image à un PDF avec C# :
```csharp
using System.Drawing; 
using Spire.Pdf; 
using Spire.Pdf.Graphics; 
 
namespace AddImageToPdf 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            // Créer un objet PdfDocument 
            PdfDocument doc = new PdfDocument(); 
 
            // Définir les marges 
            doc.PageSettings.SetMargins(20); 
 
            // Ajouter une page 
            PdfPageBase page = doc.Pages.Add(); 
 
            // Charger une image 
            Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\announcement.jpg"); 
 
            // Obtenir la largeur et la hauteur de l'image 
            float width = image.PhysicalDimension.Width; 
            float height = image.PhysicalDimension.Height; 
        
            // Déclarer une variable PdfImage 
            PdfImage pdfImage; 
 
            // Si la largeur de l'image est supérieure à la largeur de la page 
            if (width > page.Canvas.ClientSize.Width) 
            { 
                // Redimensionner l'image pour l'adapter à la largeur de la page 
                float widthFitRate = width / page.Canvas.ClientSize.Width; 
                Size size = new Size((int)(width / widthFitRate), (int)(height / widthFitRate)); 
                Bitmap scaledImage = new Bitmap(image, size); 
 
                // Charger l'image redimensionnée dans l'objet PdfImage 
                pdfImage = PdfImage.FromImage(scaledImage); 
            }  
            else 
            { 
                // Charger l'image d'origine dans l'objet PdfImage 
                pdfImage = PdfImage.FromImage(image); 
            } 
 
            // Dessiner l'image à la position (0, 0) 
            page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height); 
 
            // Enregistrer dans un fichier 
            doc.SaveToFile("AddImage.pdf"); 
        } 
    } 
} 
```
Voici un exemple simple qui montre comment ajouter une image à un PDF avec VB.NET :
```vb
Imports System.Drawing 
Imports Spire.Pdf 
Imports Spire.Pdf.Graphics 
  
Namespace AddImageToPdf 
    Class Program 
        Shared  Sub Main(ByVal args() As String) 
            ' Créer un objet PdfDocument 
            Dim doc As PdfDocument =  New PdfDocument()  
  
            ' Définir les marges 
            doc.PageSettings.SetMargins(20) 
  
            ' Ajouter une page 
            Dim page As PdfPageBase =  doc.Pages.Add()  
  
            ' Charger une image 
            Dim image As Image =  Image.FromFile("C:\Users\Administrator\Desktop\announcement.jpg")  
  
            ' Obtenir la largeur et la hauteur de l'image 
            Dim width As Single =  image.PhysicalDimension.Width  
            Dim height As Single =  image.PhysicalDimension.Height  
  
            ' Déclarer une variable PdfImage 
            Dim pdfImage As PdfImage 
  
            ' Si la largeur de l'image est supérieure à la largeur de la page 
            If width > page.Canvas.ClientSize.Width Then 
                ' Redimensionner l'image pour qu'elle s'adapte à la largeur de la page 
                Dim widthFitRate As Single =  width / page.Canvas.ClientSize.Width  
                Dim size As Size =  New Size(CType((width / widthFitRate),(Integer)(height / widthFitRate), Integer))  
                Dim scaledImage As Bitmap =  New Bitmap(image,size)  
  
                ' Charger l'image redimensionnée dans l'objet PdfImage 
                pdfImage = PdfImage.FromImage(scaledImage) 
            Else  
                ' Charger l'image originale dans l'objet PdfImage 
                pdfImage = PdfImage.FromImage(image) 
            End If 
  
            ' Dessiner l'image à la position (0, 0) 
            page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height) 
  
            ' Enregistrer dans un fichier 
            doc.SaveToFile("AddImage.pdf") 
        End Sub 
    End Class 
End Namespace
``` 

## Convertir une image en PDF avec C# et VB.NET
Lors de la conversion d'images individuelles au format PDF, vous avez la possibilité de conserver la taille originale de l'image en tant que dimensions de la page du nouveau document PDF. Cela permet à chaque image d'être présentée aussi fidèlement que possible à sa taille et résolution d'origine dans le visualiseur PDF.

Voici un exemple simple qui montre comment convertir une image en PDF avec C# :
```csharp
using System.Drawing; 
using Spire.Pdf; 
using Spire.Pdf.Graphics; 
 
namespace ConvertImageToPdfWithSameSize 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            // Créer un objet PdfDocument 
            PdfDocument doc = new PdfDocument(); 
 
            // Définir les marges à 0 
            doc.PageSettings.SetMargins(0); 
 
            // Charger une image 
            Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\announcement.jpg"); 
 
            // Obtenir la largeur et la hauteur de l'image 
            float width = image.PhysicalDimension.Width; 
            float height = image.PhysicalDimension.Height; 
 
            // Ajouter une page de la même taille que l'image 
            PdfPageBase page = doc.Pages.Add(new SizeF(width, height)); 
 
            // Créer un objet PdfImage basé sur l'image 
            PdfImage pdfImage = PdfImage.FromImage(image); 
  
            // Dessiner l'image à la position (0, 0) de la page 
            page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height); 
 
            // Enregistrer dans un fichier 
            doc.SaveToFile("ConvertPdfWithSameSize.pdf"); 
        } 
    } 
} 
```
Voici un exemple simple qui montre comment convertir une image en PDF avec VB.NET :
```vb
Imports System.Drawing 
Imports Spire.Pdf 
Imports Spire.Pdf.Graphics 
  
Namespace ConvertImageToPdfWithSameSize 
    Class Program 
        Shared  Sub Main(ByVal args() As String) 
            ' Créer un objet PdfDocument 
            Dim doc As PdfDocument =  New PdfDocument()  
  
            ' Définir les marges à 0 
            doc.PageSettings.SetMargins(0) 
  
            ' Charger une image 
            Dim image As Image =  Image.FromFile("C:\Users\Administrator\Desktop\announcement.jpg")  
  
            ' Obtenir la largeur et la hauteur de l'image 
            Dim width As Single =  image.PhysicalDimension.Width  
            Dim height As Single =  image.PhysicalDimension.Height  
  
            ' Ajouter une page de la même taille que l'image 
            Dim page As PdfPageBase =  doc.Pages.Add(New SizeF(width,height))  
  
            ' Créer un objet PdfImage basé sur l'image 
            Dim pdfImage As PdfImage =  PdfImage.FromImage(image)  
  
            ' Dessiner l'image à la position (0, 0) de la page 
            page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height) 
  
            ' Enregistrer dans un fichier 
            doc.SaveToFile("ConvertPdfWithSameSize.pdf") 
        End Sub 
    End Class 
End Namespace 
```

## Convertir plusieurs images en un seul PDF avec C# et VB.NET
Dans certaines situations, vous pouvez vouloir combiner plusieurs images en un seul PDF dans le but de les partager ou de les archiver.

Voici un exemple simple qui montre comment convertir plusieurs images en un PDF avec C# :
```csharp
using Spire.Pdf; 
using Spire.Pdf.Graphics; 
using System.Drawing; 
 
namespace ConvertMultipleImagesIntoPdf 
{ 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            // Créer un objet PdfDocument 
            PdfDocument doc = new PdfDocument(); 
 
            // Définir les marges de page à 0 
            doc.PageSettings.SetMargins(0); 
 
            // Obtenir le dossier où les images sont stockées 
            DirectoryInfo folder = new DirectoryInfo(@"C:\Users\Administrator\Desktop\Images"); 
 
            // Parcourir les fichiers du dossier 
            foreach (FileInfo file in folder.GetFiles()) 
            { 
                // Charger une image particulière 
                Image image = Image.FromFile(file.FullName); 
 
                // Obtenir la largeur et la hauteur de l'image 
                float width = image.PhysicalDimension.Width; 
                float height = image.PhysicalDimension.Height; 
 
                // Ajouter une page de la même taille que l'image 
                PdfPageBase page = doc.Pages.Add(new SizeF(width, height)); 
 
                // Créer un objet PdfImage basé sur l'image 
                PdfImage pdfImage = PdfImage.FromImage(image); 
 
                // Dessiner l'image à la position (0, 0) de la page 
                page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height); 
            } 
       
            // Enregistrer dans un fichier 
            doc.SaveToFile("CombineImagesToPdf.pdf"); 
            doc.Dispose(); 
        } 
    } 
} 
```
Voici un exemple simple qui montre comment convertir plusieurs images en un PDF avec VB.NET :
```vb
Imports Spire.Pdf 
Imports Spire.Pdf.Graphics 
Imports System.Drawing 
  
Namespace ConvertMultipleImagesIntoPdf 
    Class Program 
        Shared  Sub Main(ByVal args() As String) 
            ' Créer un objet PdfDocument 
            Dim doc As PdfDocument =  New PdfDocument()  
  
            ' Définir les marges de page à 0 
            doc.PageSettings.SetMargins(0) 
  
            ' Obtenir le dossier où les images sont stockées 
            Dim folder As DirectoryInfo =  New DirectoryInfo("C:\Users\Administrator\Desktop\Images")  
  
            ' Parcourir les fichiers du dossier 
            Dim file As FileInfo 
            For Each file In folder.GetFiles() 
                ' Charger une image particulière 
                Dim image As Image =  Image.FromFile(file.FullName)  
  
                ' Obtenir la largeur et la hauteur de l'image 
                Dim width As Single =  image.PhysicalDimension.Width  
                Dim height As Single =  image.PhysicalDimension.Height  
  
                ' Ajouter une page de la même taille que l'image 
                Dim page As PdfPageBase =  doc.Pages.Add(New SizeF(width,height))  
  
                ' Créer un objet PdfImage basé sur l'image 
                Dim pdfImage As PdfImage =  PdfImage.FromImage(image)  
  
                ' Dessiner l'image à la position (0, 0) de la page 
                page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height) 
            Next 
  
            ' Enregistrer dans un fichier 
            doc.SaveToFile("CombinaImagesToPdf.pdf") 
            doc.Dispose() 
        End Sub 
    End Class 
End Namespace 
```

## Sujets connexes

- [C#/VB.NET : Convertir du HTML en PDF](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-HTML-to-PDF-Customize-HTML-to-PDF-Conversion-by-Yourself.html)
- [C#/VB.NET : Convertir des fichiers texte en PDF](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-Text-to-PDF-with-C-VB.NET.html)
- [C#/VB.NET : Convertir des PDF en images (JPG, PNG, BMP)](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Convert-PDF-Page-to-Image-with-C-code.html)
- [C#/VB.NET : Convertir des PDF en Word](https://www.e-iceblue.com/Tutorials/Spire.PDF/Spire.PDF-Program-Guide/Conversion/How-to-convert-PDF-to-Doc-in-C-VB.NET.html)
- [C#/VB.NET : Convertir des PDF en Excel](https://www.e-iceblue.com/Tutorials/Spire.PDF/Program-Guide/Conversion/Convert-PDF-to-Excel-in-C-VB.NET.html)
- [C#/VB.NET : Convertir des PDF en PowerPoint](https://www.e-iceblue.com/Tutorials/NET/Spire.PDF/Program-Guide/Conversion/C-/VB.NET-Convert-PDF-to-PowerPoint.html)