Travailler avec des images en PDF C#

Une image vaut mieux que mille mots. Par conséquent, les images et les graphiques jouent un rôle important dans PDF ainsi que dans d’autres documents. Étant donné que PDF est devenu l’un des formats de fichiers les plus populaires et les plus utilisés, cet article explique comment manipuler des images dans des fichiers PDF par programme. Plus précisément, vous apprendrez à ajouter, extraire, supprimer et remplacer des images à partir de fichiers PDF en C# .NET.

API C# pour ajouter, supprimer et remplacer des images dans un PDF - Téléchargement gratuit

Aspose.PDF for .NET est une bibliothèque de classes C# qui vous permet de créer et de manipuler des documents PDF à partir des applications .NET. À l’aide de l’API, vous pouvez exécuter assez facilement des fonctionnalités d’automatisation PDF de base et avancées. De plus, vous pouvez manipuler des images dans des fichiers PDF existants. L’API peut être téléchargée en tant que DLL ou installée via NuGet.

PM> Install-Package Aspose.Pdf

Ajouter une image dans un fichier PDF en C# .NET

Voici les étapes pour ajouter une image à un fichier PDF en utilisant Aspose.PDF for .NET.

  • Utilisez la classe Document pour créer un nouveau fichier PDF ou charger un fichier PDF existant.
  • Obtenir la référence de la page souhaitée dans l’objet Page.
  • Ajoutez l’image à la collection Resources de la page.
  • Utilisez les opérateurs suivants pour placer l’image sur la page :
    • GSave operator to save the current graphical state.
    • ConcaténerMatrice operator to specify where the image is to be placed.
    • Fais operator to draw the image on the page.
    • GRestaurer operator to save the updated graphical state.
  • Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.Save(String).

L’exemple de code suivant montre comment ajouter une image à un fichier PDF à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Ouvrir le document
Document pdfDocument = new Document("AddImage.pdf");

// Définir les coordonnées
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Obtenir la page où l'image doit être ajoutée
Page page = pdfDocument.Pages[1];

// Charger l'image dans le flux
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Ajouter une image à la collection d'images des ressources de page
page.Resources.Images.Add(imageStream);

// Utilisation de l'opérateur GSave : cet opérateur enregistre l'état actuel des graphiques
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Créer des objets Rectangle et Matrix
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Utilisation de l'opérateur ConcatenateMatrix (matrice de concaténation): définit comment l'image doit être placée
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Utilisation de l'opérateur Do : cet opérateur dessine l'image
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Utilisation de l'opérateur GRestore : cet opérateur restaure l'état graphique
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Enregistrer le document mis à jour
pdfDocument.Save("AddImage_out.pdf");

Extraire des images d’un PDF en C#

Si vous souhaitez extraire toutes les images d’un fichier PDF, vous pouvez le faire en suivant les étapes ci-dessous.

  • Utilisez la classe Document pour charger un fichier PDF existant.
  • Obtenez l’image souhaitée dans l’objet XImage à partir de la collection Resources d’une page particulière à l’aide de l’index.
  • Enregistrez l’image extraite au format souhaité à l’aide de la méthode XImage.Save(FileStream, ImageFormat).

L’exemple de code suivant montre comment extraire des images d’un PDF à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Ouvrir le document
Document pdfDocument = new Document("ExtractImages.pdf");

// Extraire une image particulière
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// Enregistrer l'image de sortie
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

Supprimer des images d’un PDF en C#

Une fois que vous avez accès aux ressources d’une page en PDF, vous pouvez en supprimer les images. Voici les étapes à suivre pour supprimer des images d’un fichier PDF à l’aide de C#.

L’exemple de code suivant montre comment supprimer des images d’un PDF à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Ouvrir le document
Document pdfDocument = new Document("DeleteImages.pdf");

// Supprimer une image particulière
pdfDocument.Pages[1].Resources.Images.Delete(1);

// Enregistrer le fichier PDF mis à jour
pdfDocument.Save("output.pdf");

Remplacer l’image en PDF en C#

Aspose.PDF for .NET vous permet également de remplacer une image particulière dans le PDF. Pour cela, vous pouvez remplacer l’image dans la collection d’images de la page. Voici les étapes pour remplacer une image au format PDF à l’aide de C#.

  • Chargez le fichier PDF à l’aide de la classe Document.
  • Remplacez l’image souhaitée à l’aide de la méthode [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24.
  • Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.Save(String).

L’exemple de code suivant montre comment remplacer une image dans un PDF à l’aide de C#.

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Ouvrir le document
Document pdfDocument = new Document("input.pdf");

// Remplacer une image particulière
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// Enregistrer le fichier PDF mis à jour
pdfDocument.Save("output.pdf");

API C# .NET PDF - Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’essayer l’API sans limitation d’évaluation.

Conclusion

Les images et les objets graphiques sont des éléments importants des documents PDF. Par conséquent, dans cet article, nous avons expliqué comment manipuler des images dans un PDF à l’aide de l’API C# .NET. Le didacticiel pas à pas et les exemples de code ont montré comment ajouter, extraire, supprimer et remplacer des images dans des fichiers PDF en C#. Vous pouvez en savoir plus sur l’API C# PDF à l’aide de la documentation.

Voir également