C# Add Image to PDF (Developer Tutorial)
From a developer's perspective, programmatically adding images to PDF documents is a challenging task due to the variety of image formats and their complexity to manipulate. Therefore, the IronPDF C# library is recommended to add images to the PDF document programmatically. Let's explore what IronPDF is and how to use it effectively.
How to Add Image in PDF Using C#
- Download and install IronPDF C# Library
- Import existing image utilizing
ReadAllBytes
C# method - Convert the added image to base-64 digits
- Pass the image data to HTML string in
img
tag - Render and export HTML to PDF document using C#
IronPDF: C# PDF Library
The IronPDF C# library is a PDF library written in C# and targeting the PDF object model. This library provides the developer with a way to create, edit, and save PDF files without the need to tightly maintain relevance to specific APIs such as Adobe's Acrobat. The IronPDF C# library can be used when you don't want to use Adobe Acrobat or another individual piece of software.
This library assists developers with plenty of tools for creating, editing PDF files with C#, and saving PDF files and features that other .NET PDF libraries do not offer. Many developers prefer the IronPDF C# library because it provides everything they are looking for in a PDF library on Windows, Linux, and macOS platforms, and at no cost whatsoever! IronPDF constantly adds features and extends its services to make it the best utility for your PDF needs. The library excels beyond the bare-bones requirements for those who need to browse, search, find, extract data from PDF files or create PDF files. Let's take a look at how the IronPDF is used to add images to a PDF document.
Create or Open C# Project
To add images to a PDF document, the latest version of Visual Studio is recommended for creating a C# project for a smooth experience.
- Open Visual Studio.
Visual Studio starting up UI
- Click on the "Create a New Project" button.
- Select "C# Console Application" from the Project templates and click on the Next button. You can choose a platform according to your needs.
Create a Console Application in Visual Studio
- Next, give a name to your project and click on the Next button.
- Choose Target .NET Framework >= .NET Core 3.1 version and click on the Create button.
By following the above steps, you will be able to create a new C# project easily. You can use an already existing C# project. Just open the project and install the IronPDF library.
Install the IronPDF Library
The IronPDF library can be installed in multiple ways.
- Using NuGet Package Manager
- Using Package Manager Console
Using NuGet Package Manager
To install the library using NuGet Package Manager, follow the steps below:
- Go to Tools > NuGet Package Manager > Manage NuGet Package for Solution from the main menu options.
Navigate to NuGet Package Manager
- This will open the NuGet Package Manager window. Go to the browse tab and search for IronPDF. Select the IronPDF library and click on the "Install" button.
Install the IronPdf package from the NuGet Package Manager
Using Package Manager Console
Below are the steps to install the IronPDF library using the Console.
- Go to the Package Manager Console (usually located at the bottom of Visual Studio).
- Write the following command to start the installation of the IronPDF library.
Install-Package IronPdf
It will start the installation, and you will be able to see the progress of the installation. After installation, you will be able to use the IronPDF library in your project very quickly.
The library has been installed, and now it's time to write code for adding images to the PDF document. Starting with importing the IronPDF namespace. So, write the following line in your code file:
using IronPdf;
using IronPdf;
Imports IronPdf
Adding Bitmaps and Images to the PDF Document
There are multiple ways to add images to PDF documents using IronPDF: use a direct image file, convert images to bytes, or use System.Drawing.Bitmap
. Furthermore, the IronPDF library supports multiple image formats.
Let's take a look:
using IronPdf;
using System.IO;
using System.Drawing;
class PDFImageAdder
{
/* This method demonstrates how to convert an image file to a PDF document in C# */
static void Main(string[] args)
{
// Initialize IronPdf Renderer
var renderer = new IronPdf.ChromePdfRenderer();
// Read the PNG image file into binary format
var pngBinaryData = File.ReadAllBytes("embed_me.png");
// Convert image binary data to base64 for embedding in HTML
var ImgDataURI = "data:image/png;base64," + Convert.ToBase64String(pngBinaryData);
// Embed the image as a base64 data URI in an HTML <img> tag
var ImgHtml = $"<img src='{ImgDataURI}'>";
// Render the HTML as a PDF document
using var pdfdoc = renderer.RenderHtmlAsPdf(ImgHtml);
// Save the rendered PDF document
pdfdoc.SaveAs("embedded_example_1.pdf");
}
}
using IronPdf;
using System.IO;
using System.Drawing;
class PDFImageAdder
{
/* This method demonstrates how to convert an image file to a PDF document in C# */
static void Main(string[] args)
{
// Initialize IronPdf Renderer
var renderer = new IronPdf.ChromePdfRenderer();
// Read the PNG image file into binary format
var pngBinaryData = File.ReadAllBytes("embed_me.png");
// Convert image binary data to base64 for embedding in HTML
var ImgDataURI = "data:image/png;base64," + Convert.ToBase64String(pngBinaryData);
// Embed the image as a base64 data URI in an HTML <img> tag
var ImgHtml = $"<img src='{ImgDataURI}'>";
// Render the HTML as a PDF document
using var pdfdoc = renderer.RenderHtmlAsPdf(ImgHtml);
// Save the rendered PDF document
pdfdoc.SaveAs("embedded_example_1.pdf");
}
}
Imports IronPdf
Imports System.IO
Imports System.Drawing
Friend Class PDFImageAdder
' This method demonstrates how to convert an image file to a PDF document in C#
Shared Sub Main(ByVal args() As String)
' Initialize IronPdf Renderer
Dim renderer = New IronPdf.ChromePdfRenderer()
' Read the PNG image file into binary format
Dim pngBinaryData = File.ReadAllBytes("embed_me.png")
' Convert image binary data to base64 for embedding in HTML
Dim ImgDataURI = "data:image/png;base64," & Convert.ToBase64String(pngBinaryData)
' Embed the image as a base64 data URI in an HTML <img> tag
Dim ImgHtml = $"<img src='{ImgDataURI}'>"
' Render the HTML as a PDF document
Dim pdfdoc = renderer.RenderHtmlAsPdf(ImgHtml)
' Save the rendered PDF document
pdfdoc.SaveAs("embedded_example_1.pdf")
End Sub
End Class
This program will load the image first. The ReadAllBytes
function converts the image into bytes format in the above code. After that, the image data will be encoded into base64 and placed into an HTML <img>
tag as a string. After that, the HTML string will be rendered to a PDF by using the RenderHtmlAsPdf
method function. It will create a PDF page in the PDF document.
The next example will show how to use a Bitmap image in the PDF document. IronPDF has a useful method to embed a System.Drawing.Image
in an HTML document, which may then be rendered as a PDF. Visit the following ImageUtilities API to understand more about it. The following code will show how it works:
using IronPdf;
using System.Drawing;
class PDFImageAdder
{
static void Main(string[] args)
{
// Initialize IronPdf Renderer
var renderer = new IronPdf.ChromePdfRenderer();
// Create a Bitmap image
Bitmap MyImage = new Bitmap("Path-to-Your-Image");
// Convert the Bitmap image to a Data URI
string DataURI = IronPdf.Util.ImageToDataUri(MyImage);
// Embed the image as a Data URI in an HTML <img> tag
var ImgHtml = $"<img src='{DataURI}'>";
// Render the HTML to PDF
using var pdfdoc2 = renderer.RenderHtmlAsPdf(ImgHtml);
// Save the PDF document
pdfdoc2.SaveAs("embedded_example_2.pdf");
}
}
using IronPdf;
using System.Drawing;
class PDFImageAdder
{
static void Main(string[] args)
{
// Initialize IronPdf Renderer
var renderer = new IronPdf.ChromePdfRenderer();
// Create a Bitmap image
Bitmap MyImage = new Bitmap("Path-to-Your-Image");
// Convert the Bitmap image to a Data URI
string DataURI = IronPdf.Util.ImageToDataUri(MyImage);
// Embed the image as a Data URI in an HTML <img> tag
var ImgHtml = $"<img src='{DataURI}'>";
// Render the HTML to PDF
using var pdfdoc2 = renderer.RenderHtmlAsPdf(ImgHtml);
// Save the PDF document
pdfdoc2.SaveAs("embedded_example_2.pdf");
}
}
Imports IronPdf
Imports System.Drawing
Friend Class PDFImageAdder
Shared Sub Main(ByVal args() As String)
' Initialize IronPdf Renderer
Dim renderer = New IronPdf.ChromePdfRenderer()
' Create a Bitmap image
Dim MyImage As New Bitmap("Path-to-Your-Image")
' Convert the Bitmap image to a Data URI
Dim DataURI As String = IronPdf.Util.ImageToDataUri(MyImage)
' Embed the image as a Data URI in an HTML <img> tag
Dim ImgHtml = $"<img src='{DataURI}'>"
' Render the HTML to PDF
Dim pdfdoc2 = renderer.RenderHtmlAsPdf(ImgHtml)
' Save the PDF document
pdfdoc2.SaveAs("embedded_example_2.pdf")
End Sub
End Class
In the above code, the ImageToDataUri
function is used to convert an image into a URI format. The image is then drawn in the PDF document using the RenderHtmlAsPdf
function. This applies to multiple images.
Additionally, IronPDF is also capable of rendering charts in PDFs, adding barcodes to PDF documents, enhancing PDF security with passwords and watermarking PDF files, and even handling PDF forms programmatically.
Licensing
IronPDF is an excellent PDF library that assists you in creating and customizing PDF files, and it is available to purchase today. However, IronPDF is entirely free for development purposes. You can also activate the free trial version for production without any payment details. After purchasing IronPDF, Iron Software makes you a fantastic offer to purchase five Iron Software packages for the price of just two. Yes! You heard right — you can purchase a suite of five Iron Software products for the price of just two. Buy it now! Visit the IronPDF licensing page for more details.
Frequently Asked Questions
How can I add images to a PDF using C#?
You can add images to a PDF in C# by converting the images to base64 format, embedding them in an HTML tag, and using IronPDF's
RenderHtmlAsPdf
method to convert the HTML to a PDF.
What are the steps to set up a C# project for adding images to PDFs?
To set up a C# project for adding images to PDFs, open Visual Studio, create a new C# Console Application, and ensure your project targets .NET Framework version 3.1 or higher. Install the IronPDF library via NuGet Package Manager or Package Manager Console.
How do I convert an image to base64 in C# for PDF embedding?
In C#, you can convert an image to base64 by reading the image file into a byte array and then converting it using Convert.ToBase64String
. This base64 string can be embedded in an HTML tag for PDF conversion using IronPDF.
What image formats are supported for embedding in PDFs?
IronPDF supports multiple image formats, allowing you to embed various types of images in your PDF documents, including JPEG, PNG, and BMP.
What is the method for embedding Bitmap images in PDFs using C#?
To embed Bitmap images in PDFs using C#, convert the Bitmap to a Data URI using the ImageToDataUri
function, embed it in an HTML tag, and render it as a PDF with IronPDF's
RenderHtmlAsPdf
method.
How can I enhance PDF security while embedding images?
IronPDF offers features to enhance PDF security, such as adding passwords and permissions. This can be done alongside embedding images by setting security options in the PDF creation process.
Can I add charts and barcodes to PDFs along with images?
Yes, IronPDF allows you to add charts and barcodes to PDFs in addition to images. These elements can be created and rendered using HTML and CSS, and then converted to PDF using IronPDF.
What are the licensing options for IronPDF?
IronPDF offers a free trial for development and cost-effective licensing options for broader use. More information can be found on the IronPDF licensing page.
How do I install IronPDF using the Package Manager Console?
To install IronPDF using the Package Manager Console, use the command Install-Package IronPdf
.