Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

iTextSharp : Ajouter une image à un PDF

IronPDF offre une insertion d'images plus simple avec moins de lignes de code et une licence perpétuelle, tandis qu'iTextSharp offre un contrôle plus précis mais nécessite plus de code et possède une licence complexe sous AGPL pour une utilisation commerciale.

Lorsqu'on travaille avec des fichiers PDF dans un environnement .NET, ajouter des images aux documents est une exigence courante pour de nombreuses applications. Que vous génériez des factures avec des logos d'entreprise, créiez des rapports avec des graphiques intégrés ou produisiez des documents personnalisés avec des filigranes , la possibilité d'intégrer des images dans les PDF est essentielle. IronPDF et iTextSharp sont deux bibliothèques PDF populaires en C#. Cet article compare les deux bibliothèques sur leur capacité à ajouter des images aux PDF, en tenant compte de la facilité d'utilisation, des performances, des modèles de licence et des fonctionnalités avancées telles que la compression d'images et la prise en charge des formats.

Quelles sont les principales différences entre IronPDF et iTextSharp ?

Quelles sont les fonctionnalités d'image offertes par chaque bibliothèque ?

Comment gèrent-ils les fichiers volumineux et les opérations complexes ?

Quelles sont les implications en termes de coûts pour une utilisation commerciale ?

Comment ajouter des images à un PDF avec IronPDF ?

Comment installer et configurer IronPDF ?

Installez IronPDF dans votre projet C# ou Visual Basic via NuGet . La bibliothèque prend en charge plusieurs méthodes d'installation, notamment Windows Installer et le déploiement Docker :

Install-Package IronPdf

Une fois installé, vous pouvez commencer à ajouter des images en utilisant la documentation de l'API d'IronPDF. La bibliothèque fonctionne parfaitement sur les plateformes Windows , Linux et macOS .

À quoi ressemble l'ajout d'images basiques dans IronPDF ?

Démarrage rapide : Ajouter une image à un PDF avec IronPDF

L'ajout d'images aux PDF avec IronPDF nécessite un minimum de code grâce à l'API d'estampage.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronPDF avec le gestionnaire de packages NuGet

    PM > Install-Package IronPdf

  2. Copiez et exécutez cet extrait de code.

    using IronPdf;
    using IronPdf.Editing;
    
    class Program
    {
        public static void Main(string[] args)
        {
            // Create a renderer to convert HTML to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();
    
            // Render a basic PDF with some HTML content
            PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
    
            // Create an ImageStamper with the image URL
            ImageStamper stamper = new ImageStamper(new Uri("___PROTECTED_URL_61___"));
    
            // Configure image position and size
            stamper.HorizontalAlignment = HorizontalAlignment.Center;
            stamper.VerticalAlignment = VerticalAlignment.Middle;
            stamper.Width = 200;  // Width in pixels
            stamper.Height = 100; // Height in pixels
    
            // Apply the stamp (image) to the PDF document
            pdf.ApplyStamp(stamper);
    
            // Save the modified PDF to a file
            pdf.SaveAs("output.pdf");
        }
    }
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Comment puis-je ajouter des filigranes et des images de fond ?

IronPDF excelle dans l'ajout de filigranes et d'images de fond aux PDF existants. La bibliothèque prend en charge plusieurs opérations d'estampage et un positionnement personnalisé :

using IronPdf;
using IronPdf.Editing;

// Load an existing PDF
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Create a watermark with transparency
ImageStamper watermark = new ImageStamper("watermark.png")
{
    Opacity = 30,  // 30% opacity for subtle watermarking
    Rotation = -45, // Diagonal watermark
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Middle
};

// Apply watermark to all pages
pdf.ApplyStamp(watermark);

// Add a header logo
ImageStamper logo = new ImageStamper("company-logo.png")
{
    HorizontalOffset = Length.Millimeters(10),
    VerticalOffset = Length.Millimeters(10),
    Width = 150,
    Height = 50
};

pdf.ApplyStamp(logo, PageSelection.FirstPage);
pdf.SaveAs("watermarked-invoice.pdf");
using IronPdf;
using IronPdf.Editing;

// Load an existing PDF
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Create a watermark with transparency
ImageStamper watermark = new ImageStamper("watermark.png")
{
    Opacity = 30,  // 30% opacity for subtle watermarking
    Rotation = -45, // Diagonal watermark
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Middle
};

// Apply watermark to all pages
pdf.ApplyStamp(watermark);

// Add a header logo
ImageStamper logo = new ImageStamper("company-logo.png")
{
    HorizontalOffset = Length.Millimeters(10),
    VerticalOffset = Length.Millimeters(10),
    Width = 150,
    Height = 50
};

pdf.ApplyStamp(logo, PageSelection.FirstPage);
pdf.SaveAs("watermarked-invoice.pdf");
$vbLabelText   $csharpLabel

Vous pouvez également créer des mises en page complexes avec plusieurs images :

// Add images from Base64 strings
string base64Image = Convert.ToBase64String(File.ReadAllBytes("signature.png"));
HtmlStamper signatureStamp = new HtmlStamper($"<img src='data:image/png;base64,{base64Image}'/>");
signatureStamp.HorizontalAlignment = HorizontalAlignment.Right;
signatureStamp.VerticalAlignment = VerticalAlignment.Bottom;
pdf.ApplyStamp(signatureStamp);
// Add images from Base64 strings
string base64Image = Convert.ToBase64String(File.ReadAllBytes("signature.png"));
HtmlStamper signatureStamp = new HtmlStamper($"<img src='data:image/png;base64,{base64Image}'/>");
signatureStamp.HorizontalAlignment = HorizontalAlignment.Right;
signatureStamp.VerticalAlignment = VerticalAlignment.Bottom;
pdf.ApplyStamp(signatureStamp);
$vbLabelText   $csharpLabel

Visionneuse PDF affichant un document simple avec le texte " Hello World " et le logo IronPDF en filigrane centré sur la page – illustrant la fonction d'impression d'images d'IronPDF avec un positionnement précis et un contrôle de l'opacité.

Cet exemple utilise la classe ChromePdfRenderer pour générer un nouveau PDF à partir d'une chaîne HTML . L'outil d'estampage d'images d'IronPDF vous permet de créer une image à partir de l'URL fournie et de l'appliquer au PDF. Ceci démontre comment ajouter des images à votre page PDF avec un minimum de code. Les options de rendu offrent un contrôle total sur la qualité de la sortie.

Comment puis-je contrôler la position et les dimensions des images dans IronPDF ?

IronPDF offre de nombreuses possibilités de personnalisation pour le placement des images. Vous spécifiez l'emplacement de la page en définissant l'alignement et le décalage grâce à la fonction de positionnement de l'outil d'estampage. La bibliothèque prend en charge à la fois le positionnement absolu avec coordonnées et le positionnement relatif à l'aide d'options d'alignement . Parmi les fonctionnalités avancées, on trouve des formats de papier personnalisés et le contrôle des marges pour des mises en page précises.

Comment ajouter des images à des PDF avec iTextSharp ?

Comment installer et configurer iTextSharp ?

Installez iTextSharp via NuGet. Contrairement à la prise en charge complète des plateformes offerte par IronPDF, iTextSharp propose des options de déploiement limitées :

Install-Package itext7

Une fois la configuration terminée, procédez à l'ajout d'images à l'aide des fonctionnalités de manipulation de documents d'iTextSharp. La bibliothèque nécessite une configuration supplémentaire pour la gestion des polices et la prise en charge de l'UTF-8 .

À quoi ressemble l'ajout d'images basiques dans iTextSharp ?

Voici comment insérer une image avec iTextSharp :

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    public static void Main(string[] args)
    {
        // Initialize PDF writer
        var pdfWriter = new PdfWriter("output.pdf");

        // Initialize PDF document
        var pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfWriter);

        // Initialize document
        var document = new Document(pdfDocument);

        // Create ImageData from image file
        ImageData imageData = ImageDataFactory.Create("iText.png");

        // Create an Image instance
        Image image = new Image(imageData);

        // Set fixed position for the image in the PDF
        image.SetFixedPosition(50, 100);  // x, y coordinates

        // Scale image to fit within specified dimensions
        image.ScaleToFit(200, 200);  // Width, Height

        // Add image to document
        document.Add(image);

        // Close the document
        document.Close();
    }
}
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    public static void Main(string[] args)
    {
        // Initialize PDF writer
        var pdfWriter = new PdfWriter("output.pdf");

        // Initialize PDF document
        var pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfWriter);

        // Initialize document
        var document = new Document(pdfDocument);

        // Create ImageData from image file
        ImageData imageData = ImageDataFactory.Create("iText.png");

        // Create an Image instance
        Image image = new Image(imageData);

        // Set fixed position for the image in the PDF
        image.SetFixedPosition(50, 100);  // x, y coordinates

        // Scale image to fit within specified dimensions
        image.ScaleToFit(200, 200);  // Width, Height

        // Add image to document
        document.Add(image);

        // Close the document
        document.Close();
    }
}
$vbLabelText   $csharpLabel

Comment puis-je ajouter plusieurs images et gérer des mises en page complexes ?

Pour des scénarios complexes comme la création de catalogues de produits ou d'albums photos , la mise en page est gérée manuellement. La fonction de table des matières et la prise en charge des signets d'IronPDF permettent d'organiser les documents de plusieurs pages :

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;
using iText.Layout.Properties;

// Create a grid of images
var pdfWriter = new PdfWriter("catalog.pdf");
var pdfDocument = new PdfDocument(pdfWriter);
var document = new Document(pdfDocument);

// Add images in a grid layout
float xPosition = 50;
float yPosition = 750;
int imagesPerRow = 3;
int currentImage = 0;

string[] imageFiles = { "product1.jpg", "product2.jpg", "product3.jpg", 
                       "product4.jpg", "product5.jpg", "product6.jpg" };

foreach (string imagePath in imageFiles)
{
    ImageData imageData = ImageDataFactory.Create(imagePath);
    Image image = new Image(imageData);

    // Calculate position
    int column = currentImage % imagesPerRow;
    int row = currentImage / imagesPerRow;

    float x = xPosition + (column * 180);
    float y = yPosition - (row * 250);

    image.SetFixedPosition(x, y);
    image.ScaleToFit(150, 200);

    document.Add(image);
    currentImage++;
}

document.Close();
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;
using iText.Layout.Properties;

// Create a grid of images
var pdfWriter = new PdfWriter("catalog.pdf");
var pdfDocument = new PdfDocument(pdfWriter);
var document = new Document(pdfDocument);

// Add images in a grid layout
float xPosition = 50;
float yPosition = 750;
int imagesPerRow = 3;
int currentImage = 0;

string[] imageFiles = { "product1.jpg", "product2.jpg", "product3.jpg", 
                       "product4.jpg", "product5.jpg", "product6.jpg" };

foreach (string imagePath in imageFiles)
{
    ImageData imageData = ImageDataFactory.Create(imagePath);
    Image image = new Image(imageData);

    // Calculate position
    int column = currentImage % imagesPerRow;
    int row = currentImage / imagesPerRow;

    float x = xPosition + (column * 180);
    float y = yPosition - (row * 250);

    image.SetFixedPosition(x, y);
    image.ScaleToFit(150, 200);

    document.Add(image);
    currentImage++;
}

document.Close();
$vbLabelText   $csharpLabel

Visionneuse PDF affichant un logo ITEXT centré avec le texte " CORE " sur une page blanche : exemple de rendu de l'insertion d'image par iTextSharp illustrant les fonctionnalités de positionnement et de mise à l'échelle de base.

L'image est ajoutée aux coordonnées (50, 100) et mise à l'échelle pour tenir dans 200x200 pixels. Le PdfWriter crée le fichier de sortie, activant ainsi la fonctionnalité d'écriture PDF pour la gestion des images. Pour une meilleure organisation, pensez à utiliser des numéros de page et des en-têtes/pieds de page .

Comment puis-je contrôler la position et les dimensions des images dans iTextSharp ?

iTextSharp permet de contrôler le positionnement et la taille grâce à des calculs de coordonnées manuels. Vous pouvez redimensionner les images tout en conservant leurs proportions ou les étirer à des dimensions spécifiques. La méthode SetFixedPosition offre un contrôle précis du placement et vous permet de manipuler l'alignement et la rotation . Cependant, il lui manque les commandes de fenêtre d'affichage et les options de dimensionnement réactif d'IronPDF.

Comment IronPDF et iTextSharp se comparent-ils en termes de performances ?

Les deux bibliothèques gèrent l'ajout d'images aux PDF avec des différences notables :

Quelles sont les fonctionnalités d'image avancées disponibles ?

Comment gèrent-ils les différents formats d'image ?

IronPDF prend en charge tous les formats d'image :

iTextSharp prend en charge les formats standard :

  • JPEG/JPG
  • PNG avec canal alpha
  • GIF (première image seulement)
  • TIFF (une seule page)
  • BMP et autres formats bitmap

Qu'en est-il de la qualité d'image et de la compression ?

IronPDF propose des options de compression intégrées permettant d'équilibrer la taille et la qualité des fichiers. La bibliothèque offre des fonctionnalités de nettoyage et d'aplatissement :

// Configure compression when rendering
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.JpegQuality = 85; // 0-100 quality scale

// Compress existing PDFs with images
PdfDocument pdf = PdfDocument.FromFile("large-images.pdf");
pdf.CompressImages(60); // Compress to 60% quality
pdf.SaveAs("compressed.pdf");

// Additional optimization options
renderer.RenderingOptions.GrayScale = true; // Convert to grayscale
renderer.RenderingOptions.DPI = 150; // Reduce DPI for web viewing
// Configure compression when rendering
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.JpegQuality = 85; // 0-100 quality scale

// Compress existing PDFs with images
PdfDocument pdf = PdfDocument.FromFile("large-images.pdf");
pdf.CompressImages(60); // Compress to 60% quality
pdf.SaveAs("compressed.pdf");

// Additional optimization options
renderer.RenderingOptions.GrayScale = true; // Convert to grayscale
renderer.RenderingOptions.DPI = 150; // Reduce DPI for web viewing
$vbLabelText   $csharpLabel

iTextSharp nécessite une gestion manuelle de la compression par manipulation des données d'image, ce qui augmente la complexité de la mise en œuvre pour les contrôles de qualité. Vous devez implémenter vous-même la conversion en niveaux de gris et les ajustements DPI .

Comment extraire des images de fichiers PDF existants ?

IronPDF offre des capacités d'extraction d'images fiables :

// Extract all images from a PDF
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
var images = pdf.ExtractAllImages();

foreach (var image in images)
{
    // Save extracted images
    image.SaveAs($"extracted_image_{images.IndexOf(image)}.png");
}

// Extract images from specific pages
var pageImages = pdf.ExtractImagesFromPage(0); // First page
// Extract all images from a PDF
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
var images = pdf.ExtractAllImages();

foreach (var image in images)
{
    // Save extracted images
    image.SaveAs($"extracted_image_{images.IndexOf(image)}.png");
}

// Extract images from specific pages
var pageImages = pdf.ExtractImagesFromPage(0); // First page
$vbLabelText   $csharpLabel

Quels sont les modèles de licence et de tarification ?

Quelle bibliothèque choisir pour ajouter des images à mes PDF ?

Tableau comparatif des fonctionnalités des bibliothèques PDF IronPDF et iTextSharp : IronPDF se distingue par sa facilité d'utilisation, ses performances, la flexibilité de ses licences, sa prise en charge complète des formats d'image et ses fonctionnalités avancées de positionnement pour la génération de PDF professionnels.

IronPDF et iTextSharp offrent tous deux des outils efficaces pour ajouter des images aux PDF en C#, chacun présentant des avantages distincts. IronPDF excelle par sa facilité d'utilisation, ses performances et la flexibilité de ses licences, ce qui en fait la solution idéale pour gérer des PDF et des images complexes avec un minimum de code. Il offre une meilleure évolutivité pour les fichiers PDF volumineux et propose une licence à achat unique, évitant ainsi les coûts récurrents ou les restrictions complexes des logiciels libres.

La prise en charge par la bibliothèque des formats modernes tels que SVG et WebP, combinée à des capacités de compression intégrées et à des API de positionnement intuitives, convient aux applications d'entreprise nécessitant une génération de documents de haute qualité . Le moteur de rendu Chrome d'IronPDF garantit un rendu impeccable au pixel près sur toutes les plateformes.

iTextSharp convient aux projets open-source, bien qu'il nécessite plus de code pour des résultats équivalents et puisse rencontrer des problèmes de performance avec les fichiers PDF volumineux. Son API de bas niveau offre un contrôle précis, mais augmente la complexité du développement. La bibliothèque manque de fonctionnalités modernes telles que la prise en charge du CSS réactif et le rendu JavaScript .

Pour les applications d'entreprise, les avantages d'IronPDF incluent la prise en charge de Docker , la compatibilité avec AWS Lambda et l'intégration avec Azure Functions . La bibliothèque assure également la conformité aux normes PDF/A et l'accessibilité aux normes PDF/UA pour répondre aux exigences réglementaires.

Prêt à simplifier la gestion des images dans vos PDF ? IronPDF permet d'ajouter efficacement des images à vos PDF avec un minimum de code. Essayez IronPDF et découvrez une intégration d'images simplifiée dans vos projets C#. La mise en œuvre gère la complexité pour vous, ce qui vous permet de gagner du temps et d'améliorer votre flux de travail de génération de PDF . Découvrez l' ensemble des fonctionnalités et rejoignez les milliers de développeurs qui ont simplifié leurs opérations PDF.

Veuillez noteriTextSharp est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, approuvé ou sponsorisé par iTextSharp. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont faites à titre d'information uniquement et reflètent les informations publiquement disponibles au moment de la rédaction.

Questions Fréquemment Posées

Comment puis-je ajouter des images à des PDFs dans une application .NET ?

Vous pouvez utiliser IronPDF pour ajouter des images à des PDFs en utilisant sa fonctionnalité ImageStamper, qui permet une intégration d'image facile avec un contrôle précis du placement et de l'échelle.

Quels sont les avantages de performance d'IronPDF pour les fichiers PDF volumineux ?

IronPDF est optimisé pour des performances élevées, particulièrement avec de grands fichiers PDF et des images haute résolution, ce qui le rend idéal pour les applications sur serveur nécessitant un traitement efficace.

Comment IronPDF simplifie-t-il le processus d'intégration d'images dans des PDFs ?

IronPDF simplifie l'intégration d'images en fournissant une API intuitive qui nécessite un code minimal pour placer et mettre à l'échelle des images dans un document PDF, améliorant ainsi la productivité des développeurs.

Quel est le modèle de licence d'IronPDF par rapport à iTextSharp ?

IronPDF offre une licence perpétuelle avec un achat unique, éliminant les coûts d'abonnement récurrents, tandis qu'iTextSharp utilise une licence AGPL pour une utilisation open-source avec une option commerciale pour les projets propriétaires.

Pouvez-vous fournir un exemple de code pour ajouter une image à un PDF en utilisant IronPDF ?

Bien sûr ! Vous pouvez utiliser les classes PdfDocument et ImageStamper d'IronPDF pour intégrer des images dans des PDFs avec seulement quelques lignes de code, comme démontré dans l'exemple de l'article.

Comment la personnalisation du placement des images diffère-t-elle entre IronPDF et iTextSharp ?

IronPDF offre une personnalisation simple du placement des images avec des réglages d'alignement et de décalage, tandis qu'iTextSharp fournit un contrôle détaillé du positionnement des images en utilisant des méthodes comme SetFixedPosition.

Quels sont les principaux critères à considérer pour choisir entre IronPDF et iTextSharp ?

Le choix entre IronPDF et iTextSharp dépend de facteurs tels que la facilité d'utilisation, la performance avec de gros fichiers, et les besoins en licences. IronPDF est privilégié pour son approche conviviale et sa scalabilité, tandis qu'iTextSharp convient aux projets open-source.

Pourquoi IronPDF est-il recommandé pour les applications serveur à haute performance ?

L'architecture d'IronPDF est conçue pour des performances élevées, gérant efficacement les documents et images volumineux, ce qui en fait un excellent choix pour les applications serveur qui exigent rapidité et fiabilité.

Quelles sont les étapes courantes de dépannage lors de l'ajout d'images dans des PDFs ?

Lors du dépannage des problèmes d'intégration d'images dans des PDFs, assurez-vous que les chemins d'accès aux images sont corrects, vérifiez les autorisations d'accès aux fichiers, et vérifiez que le format d'image est pris en charge par la bibliothèque PDF utilisée.

Comment la version d'essai d'IronPDF aide-t-elle les développeurs ?

La version d'essai d'IronPDF permet aux développeurs d'explorer ses fonctionnalités et de tester ses capacités à gérer l'intégration d'images dans des PDFs, offrant une opportunité de simplifier le traitement des PDFs dans les projets C#.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite