Skip to footer content
PRODUCT COMPARISONS

Explore the Best Alternatives for Adding Images to PDFs in .NET

When working with PDF files in a .NET environment, adding images to documents is a common requirement for many applications. Whether you’re generating invoices, reports, or custom documents, the ability to embed images into PDFs is essential. Two of the most popular PDF libraries in C# are IronPDF and iTextSharp. In this article, we’ll compare both libraries on their ability to add images to PDFs, considering ease of use, performance, licensing, and features.

Key Differences Between IronPDF and iTextSharp

  • IronPDF: IronPDF makes adding images to PDFs easy, with built-in support for embedding both local and remote images. Its API allows fine control over the image's position, original width, and scaling within the document.

    iTextSharp: iTextSharp also offers functionality for embedding images. It provides a flexible and powerful API that can handle various image types, including JPG and PNG. However, it may require more lines of code for customization, especially when positioning or resizing images.

Performance Considerations

  • IronPDF: Known for its efficiency, IronPDF handles large PDFs and images smoothly. Its performance shines when generating or modifying PDFs with embedded graphics, making it an excellent choice for server applications that need high performance.

    iTextSharp: While iTextSharp is a reliable library, it can be slower in certain situations, especially with large files or complex image operations. However, it's still suitable for most applications.

Licensing and Pricing Models

  • IronPDF: IronPDF offers a perpetual license, meaning a one-time purchase covers usage indefinitely. This is ideal for developers who want to avoid recurring subscription costs.

    iTextSharp: iTextSharp operates under the AGPL (Affero General Public License) for open-source use, which means you must release your source code if you use it in your projects, or you can opt for a commercial license to avoid this.

Adding Images to PDFs Using IronPDF

Setting Up IronPDF in Your C# Project

Before adding images, you need to install IronPDF in your latest version of C# or Visual Basic project. You can do this via NuGet:

Install-Package IronPdf

Once installed, you can start adding images to your PDF documents.

Adding Images to PDFs with IronPDF: Code Example

The following code example demonstrates how to add an image to a PDF using IronPDF:

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("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"));

        // Apply the stamp (image) to the PDF document
        pdf.ApplyStamp(stamper);

        // Save the modified PDF to a file
        pdf.SaveAs("output.pdf");
    }
}
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("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"));

        // Apply the stamp (image) to the PDF document
        pdf.ApplyStamp(stamper);

        // Save the modified PDF to a file
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Editing

Friend Class Program
	Public Shared Sub Main(ByVal args() As String)
		' Create a renderer to convert HTML to PDF
		Dim renderer As New ChromePdfRenderer()

		' Render a basic PDF with some HTML content
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")

		' Create an ImageStamper with the image URL
		Dim stamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))

		' Apply the stamp (image) to the PDF document
		pdf.ApplyStamp(stamper)

		' Save the modified PDF to a file
		pdf.SaveAs("output.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Explore the Best Alternatives for Adding Images to PDFs in .NET: Figure 1

In this example, we first use the ChromePdfRenderer class to render a new PDF from an HTML string. Then, using IronPDF's image stamping tool, we create a new image from the provided string URL and apply it to the PDF. This example demonstrates how IronPDF can be used to add images to your PDF page in just a few lines of code.

Customizing Image Placement and Size

IronPDF allows for extensive customization when it comes to image placement. You can specify where on the page you want the image by setting the alignment and offset of the image through the stamping tool's positioning feature.

Adding Images to PDFs Using iTextSharp

Setting Up iTextSharp in Your C# Project

To get started with iTextSharp, you need to install the library via NuGet:

Install-Package itext7

Once set up, you can proceed to add images to your PDFs.

Adding Images to PDFs with iTextSharp: Code Example

Below is an example of how to insert an image using 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();
    }
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.IO.Image

Friend Class Program
	Public Shared Sub Main(ByVal args() As String)
		' Initialize PDF writer
		Dim pdfWriter As New PdfWriter("output.pdf")

		' Initialize PDF document
		Dim pdfDocument = New iText.Kernel.Pdf.PdfDocument(pdfWriter)

		' Initialize document
		Dim document As New Document(pdfDocument)

		' Create ImageData from image file
		Dim imageData As ImageData = ImageDataFactory.Create("iText.png")

		' Create an Image instance
		Dim image As 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()
	End Sub
End Class
$vbLabelText   $csharpLabel

Explore the Best Alternatives for Adding Images to PDFs in .NET: Figure 2

In this example, the image is added at coordinates (50, 100) and scaled to fit within the 200x200 pixel area. The PdfWriter is used to create the output file, making it possible to manipulate the PDF writer functionality for handling images.

Customizing Image Placement and Size

iTextSharp provides more control over the image's positioning and size. You can scale the image while maintaining the aspect ratio or stretch it to specific dimensions. The SetFixedPosition method gives precise control over placement, and you can also manipulate the image’s alignment and rotation.

Performance Comparison: IronPDF vs iTextSharp

When it comes to performance, both libraries handle the task of adding images to PDFs, but they have some differences:

  • IronPDF is optimized for performance and can handle large documents with multiple images efficiently. It's faster at rendering PDFs, especially for documents that require heavy graphical content.

  • iTextSharp offers good performance, but it might struggle with very large PDFs or a large number of high-resolution images. While it's still quite efficient, some developers report slower rendering times compared to IronPDF, particularly in more complex use cases.

Licensing and Pricing Models

  • IronPDF: IronPDF offers a straightforward perpetual license that requires a one-time purchase. This is beneficial for developers who prefer not to deal with ongoing costs or open-source licensing requirements.

  • iTextSharp: iTextSharp follows the AGPL license, which is free to use for open-source projects but requires that the source code be made public if the library is used in a web application. For commercial use, iTextSharp offers a paid commercial license to avoid AGPL restrictions.

Conclusion

Explore the Best Alternatives for Adding Images to PDFs in .NET: Figure 3 - Comparison summary table

Both IronPDF and iTextSharp offer powerful tools for adding images to PDFs in C#, but they each have distinct advantages. IronPDF stands out with its ease of use, performance, and licensing flexibility, making it the ideal choice for developers who want to handle complex PDFs and images with less code. It also provides better scalability for large PDFs and offers a one-time purchase licensing model, avoiding the need for recurring costs or complicated open-source licensing restrictions.

On the other hand, iTextSharp can be a good choice for open-source projects, though it may require more code to achieve the same results and might face performance issues with larger PDFs.

Ready to simplify your PDF image handling? IronPDF offers a seamless and efficient experience for adding images to your PDFs with just a few lines of code. Try IronPDF and see how easy it is to integrate image support into your C# projects. With IronPDF, you’ll save time, reduce complexity, and enhance your PDF generation workflow.

Please note
iTextSharp is a registered trademark of its respective owner. This site is not affiliated with, endorsed by, or sponsored by iTextSharp. All product names, logos, and brands are property of their respective owners. Comparisons are for informational purposes only and reflect publicly available information at the time of writing.

Frequently Asked Questions

What are the main differences for adding images to PDFs using PDF libraries?

IronPDF offers ease of use with built-in support for both local and remote images, and requires fewer lines of code. iTextSharp provides a more flexible API with the ability to handle various image types but may require more code for customization.

How does the handling of large PDFs with images perform?

IronPDF is known for its performance efficiency and can handle large PDFs and images smoothly. It is especially beneficial for server applications that require high performance.

What licensing models are available for these PDF libraries?

IronPDF offers a perpetual license with a one-time purchase, avoiding recurring subscription costs. iTextSharp is available under the AGPL for open-source use but requires a commercial license for proprietary projects.

How do you set up a PDF library in a C# project?

To set up IronPDF, you need to install it via NuGet with the command: Install-Package IronPdf. After installation, you can start adding images to PDF documents.

Can you provide a simple code example of adding an image to a PDF?

Yes. Using IronPDF, you create a PdfDocument with a renderer, and then apply an ImageStamper to add the image. This can be done with a few lines of code as shown in the example provided in the article.

What customization options are available for image placement in PDFs?

IronPDF allows extensive customization for image placement, including setting the alignment and offset. This is managed through the image stamping tool's positioning features.

How do PDF libraries handle image placement and size customization?

iTextSharp offers precise control over image positioning with the SetFixedPosition method, as well as options to scale images while maintaining aspect ratios or stretching them to specific dimensions.

What are the performance differences between PDF libraries for adding images?

IronPDF is optimized for better performance with large documents and images, whereas iTextSharp, though efficient, might struggle with very large PDFs or high-resolution images.

Which library is recommended for open-source projects?

iTextSharp is suitable for open-source projects due to its AGPL license, which is free to use but requires the source code to be public if used in web applications.

Why might a developer choose one PDF library over another?

Developers might choose IronPDF for its ease of use, performance, and licensing flexibility. It simplifies complex PDF and image handling with less code and offers scalability for large PDFs.

Chipego
Software Engineer
Chipego has a natural skill for listening that helps him to comprehend customer issues, and offer intelligent solutions. He joined the Iron Software team in 2023, after studying a Bachelor of Science in Information Technology. IronPDF and IronOCR are the two products Chipego has been focusing on, but his knowledge of all products is growing daily, as he finds new ways to support customers. He enjoys how collaborative life is at Iron Software, with team members from across the company bringing their varied experience to contribute to effective, innovative solutions. When Chipego is away from his desk, he can often be found enjoying a good book or playing football.