Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

iTextSharp : ajouter une image au PDF

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison

IronPDF propose une addition d'image plus simple avec moins de lignes de code et une licence perpétuelle, tandis qu'iTextSharp offre un contrôle plus granulaire mais nécessite plus de code et possède des licences complexes 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 les logos de l'entreprise, que vous créiez des rapports avec des graphiques intégrés, ou que vous produisiez des documents personnalisés avec des filigranes, la capacité d'intégrer des images dans les PDFs est essentielle. Deux bibliothèques PDF populaires en C# sont IronPDF et iTextSharp. Cet article compare les deux bibliothèques sur leur capacité à ajouter des images aux PDFs, en tenant compte de la facilité d'utilisation, des performances, des modèles de licences, et des fonctionnalités avancées comme la compression d'image et le support de format.

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

Quelles fonctions d'image chaque bibliothèque offre-t-elle ?

  • IronPDF : IronPDF simplifie l'ajout d'images aux PDFs avec un support intégré pour les images locales ainsi que celles provenant d'URLs. Son API fournit un contrôle sur la position, la largeur et le redimensionnement. La bibliothèque supporte JPEG, PNG, GIF, SVG, et le contenu WebGL. La fonctionnalité d'estampillage offre des méthodes pour l'application de filigranes, d'en-têtes et pour superposer des images. Le moteur de rendu Chrome assure un rendu précis des graphiques complexes et des images adaptatives.

    iTextSharp : iTextSharp propose l'intégration d'image via son API de bas niveau. Il offre une interface flexible qui gère les formats JPG et PNG. Cependant, il vous faut plus de code pour personnaliser, spécialement lorsque vous positionnez des images précisément ou que vous implémentez de la transparence et rotation. La bibliothèque nécessite un traitement manuel des systèmes de coordonnées et des calculs de mise à l'échelle. Vous devez souvent mettre en œuvre vos propres contrôles de viewport pour un redimensionnement adapté.

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

Quelles sont les implications de coût pour une utilisation commerciale ?

Comment ajouter des images à des PDFs en using 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 incluant Windows Installer et le déploiement Docker :

Install-Package IronPdf

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

À quoi ressemble l'ajout d'une image de base dans IronPDF ?

Démarrage rapide : Ajouter une image au PDF avec IronPDF

Ajouter des images aux PDFs avec IronPDF nécessite peu de code en utilisant l'API d'estampillage.

  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 avec un essai gratuit

    arrow pointer

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

IronPDF excelle à ajouter des filigranes et des images de fond aux PDFs existants. La bibliothèque prend en charge des opérations d'estampillage multiples 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 agencements 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 - démontrant la fonction d'estampillage d'image d'IronPDF avec un contrôle précis de position et d'opacité

Cet exemple utilise la classe ChromePdfRenderer pour rendre un nouveau PDF à partir d'une chaîne HTML. En utilisant l'outil d'estampillage d'image d'IronPDF, vous créez une image à partir de l'URL fournie et l'appliquez au PDF. Cela démontre l'ajout d'images à votre page PDF avec un code minimal. Les options de rendu offrent un contrôle total sur la qualité de sortie.

Comment puis-je contrôler la position et les dimensions de l'image dans IronPDF ?

IronPDF offre une personnalisation étendue pour le placement des images. Vous spécifiez l'emplacement de la page en définissant l'alignement et le décalage via la fonction de positionnement de l'outil d'estampillage. La bibliothèque supporte à la fois le positionnement absolu avec des coordonnées et le positionnement relatif utilisant des options d'alignement. Les fonctionnalités avancées incluent des tailles de papier personnalisées et le contrôle des marges pour des mises en page précises.

Comment ajouter des images à des PDFs en utilisant iTextSharp ?

Comment installer et configurer iTextSharp ?

Installez iTextSharp via NuGet. Contrairement au support de plateforme complet d'IronPDF, iTextSharp a des options de déploiement limitées :

Install-Package itext7

Une fois configuré, procédez à l'ajout d'images en utilisant les fonctionnalités de manipulation de document d'iTextSharp. La bibliothèque nécessite des configurations additionnelles pour la gestion des polices et le support UTF-8.

À quoi ressemble l'ajout d'une image de base dans iTextSharp ?

Voici comment insérer une image en utilisant 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 photo, vous gérez manuellement la mise en page. La fonction de table des matières d'IronPDF et le support des signets peuvent organiser des documents multipages :

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 montrant un logo ITEXT centré avec le texte 'CORE' sur une page autrement vide - exemple de sortie de l'insertion d'image d'iTextSharp démontrant des capacité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 s'adapter dans 200x200 pixels. Le PdfWriter crée le fichier de sortie, permettant d'activer la fonctionnalité d'écriture de PDF pour gérer les images. Pour une meilleure organisation, envisagez d'utiliser des numéros de page et des en-têtes/pieds de page.

Comment puis-je contrôler la position et les dimensions de l'image dans iTextSharp ?

iTextSharp offre un contrôle sur le positionnement et la taille à travers des calculs de coordonnées manuels. Vous redimensionnez les images tout en maintenant le rapport d'aspect ou en les étirant à des dimensions spécifiques. La méthode SetFixedPosition propose un contrôle de placement précis, et vous pouvez manipuler l'alignement et la rotation. Cependant, elle manque des contrôles de viewport d'IronPDF et des options de taille adaptative.

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

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

  • IronPDF améliore pour la performance, gérant les grands documents avec plusieurs images efficacement. Il rend les PDFs plus rapidement, spécialement pour les documents intensifs en graphiques. La bibliothèque supporte les opérations asynchrones et le traitement parallèle pour améliorer le débit. Les opérations de flux de mémoire réduisent les I/O sur disque pour de meilleures performances.

  • iTextSharp offre de bonnes performances mais peut rencontrer des difficultés avec des PDFs très volumineux ou de nombreuses images haute résolution. Bien qu'efficace, certains développeurs rapportent des temps de rendu plus lents comparés à IronPDF dans des cas d'utilisation complexes impliquant des opérations multipages. La bibliothèque ne dispose pas de support de linéarisation intégré pour l'optimisation web.

Quelles sont les fonctionnalités avancées relatives aux images disponibles ?

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

IronPDF prend en charge des formats d'image complets :

iTextSharp supporte les formats standards :

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

Et concernant la qualité et la compression de l'image ?

IronPDF offre des options de compression intégrées équilibrant la taille du fichier et la qualité. La bibliothèque propose des fonctionnalités de désinfection et des capacités 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 via la manipulation des données d'image, augmentant la complexité d'implémentation pour contrôler la qualité. Vous devez implémenter votre propre conversion en niveaux de gris et des ajustements DPI.

Comment puis-je extraire des images de PDFs existants ?

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

// 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 licences et de tarification ?

Quelle bibliothèque choisir pour ajouter des images aux PDFs ?

Tableau comparatif des fonctionnalités entre les bibliothèques PDF IronPDF et iTextSharp montrant les avantages d'IronPDF en termes de facilité d'utilisation, performance, flexibilité des licences, support complet des formats d'image, et de capacités de positionnement avancées pour la génération de PDF en entreprise

Les deux IronPDF et iTextSharp fournissent des outils efficaces pour ajouter des images aux PDFs en C#, chacun avec ses avantages distincts. IronPDF excelle en termes de facilité d'utilisation, de performance, et de flexibilité des licences, le rendant idéal pour gérer des PDFs et des images complexes avec un code minimal. Il offre une meilleure évolutivité pour les grands PDFs et procure une licence d'achat unique, évitant les coûts récurrents ou les restrictions compliquées de l'open source.

Le support de la bibliothèque pour des formats modernes comme SVG et WebP, combiné à des capacités de compression intégrées et des APIs 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 une sortie parfaite sur toutes les plateformes.

iTextSharp convient aux projets open source, bien qu'il exige plus de code pour des résultats équivalents et puisse rencontrer des problèmes de performance avec des PDFs plus volumineux. Son API de bas niveau offre un contrôle granulaire mais augmente la complexité du développement. La bibliothèque manque de fonctionnalités modernes comme le support CSS adaptatif et le rendu JavaScript.

Pour les applications d'entreprise, les avantages d'IronPDF incluent le support Docker, la compatibilité AWS Lambda, et l'intégration Functions d'Azure. La bibliothèque propose également une conformité PDF/A et une accessibilité PDF/UA pour les exigences réglementaires.

Prêt à simplifier la gestion d'image dans vos PDFs ? IronPDF permet une addition efficace d'images aux PDFs avec peu de code. Essayez IronPDF et découvrez une intégration d'image simplifiée dans vos projets C#. L'implémentation gère la complexité pour vous, vous faisant gagner du temps et améliorant votre flux de travail de génération de PDF. Explorez le jeu de fonctionnalités complet et rejoignez des 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 à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.

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 using 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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me