How to Get Started with the IronPDF C# PDF Library

IronPDF is our comprehensive and versitile Software Library that gives you full granular control over generating, editing, and exporting PDF files in your project or workflow. As well as every aspect and detail in its output.

With this powerful tool having support in a variety of languages such as C#, F#, VB.NET, Java, and more. It is the best solution for your PDF problems. This article will walk through the C# IronPDF Installation method.

The free for development software is available via NuGet and direct download. Follow the instructions below to start converting HTML to PDF in your .NET project.

Start using IronPDF in your project today with a free trial.

First Step:
green arrow pointer

How to Install IronPDF: Choosing the Right Mode: Native vs Remote

IronPDF offers two modes for rendering PDFs -- Native Mode and Remote Mode -- tailored to fit different development environments:

  • Native Mode: Best for developers looking to run everything locally, suitable for modern Windows, macOS, and Linux deployments. Simply install the

    IronPdf

    package into your .NET project.

  • Remote Mode (IronPdfEngine): Ideal for cloud and containerized environments like Azure, AWS, and Docker, where dependencies can be managed centrally. Also great for native-unsupported or legacy OSes such as

    Windows Server 2012

    and less popular Linux distros. Simply install the

    IronPdf.Slim

    package into your .NET project and host the

    IronPdfEngine

    in a container.

Use IronPDF with Remote Engine

Please note
What's the difference between Native & Engine?
IronPDF has some performance-intensive functions that you may choose to run remotely. While IronPDF does not require IronPdfEngine to run, setting up IronPdfEngine as a remote service is an optional way to avoid platform-specific Chrome compatibility issues on older operating systems and mobile environments.

How does using Engine change the way I code with IronPDF?
When using the Engine configuration, we recommend installing IronPdf.Slim instead of the full IronPdf package from NuGet, as the Engine manages all the extra bulk included in the Native package.

PM> Install-Package IronPdf.Slim

After installing IronPdf.Slim, configure the connection settings by pointing IronPDF to your IronPdfEngine instance. Add the following code at the startup of your application (or before calling any IronPDF method):

// Assuming that IronPdfEngine runs
// remotely at 123.456.7.8:33350.
Installation.ConnectToIronPdfHost( IronPdf.GrpcLayer.IronPdfConnectionConfiguration.RemoteServer("123.456.7.8:33350"));
// Assuming that IronPdfEngine runs
// remotely at 123.456.7.8:33350.
Installation.ConnectToIronPdfHost( IronPdf.GrpcLayer.IronPdfConnectionConfiguration.RemoteServer("123.456.7.8:33350"));
' Assuming that IronPdfEngine runs
' remotely at 123.456.7.8:33350.
Installation.ConnectToIronPdfHost(IronPdf.GrpcLayer.IronPdfConnectionConfiguration.RemoteServer("123.456.7.8:33350"))
VB   C#

How to Install the IronPDF Library to a .NET Project (Native)

Installing the C# PDF library is simple and takes less than 5 minutes.

The free for development software is available via NuGet and direct download, and with this tutorial we'll get you up and running in Visual Studio. Follow the instructions below to start converting HTML to PDF in your .NET project.


How to Tutorial

Method 1: Install IronPDF via NuGet

Use the next few steps to install the IronPDF NuGet library from within Visual Studio.

  1. In Solution Explorer, right-click References, Manage NuGet Packages
  2. Select Browse and search for IronPdf
  3. Select the package and install.
Install-Package IronPdf

There are also IronPDF NuGet Packages available for specific deployments to Mac, Linux, Azure, Docker and AWS documeted in our IronPDF advanced NuGet installation guide.


Method 2: Install IronPDF by DLL Download

The second way to install IronPDF is by downloading it. Follow these quick and easy steps:

Here are other IronPDF DLL zip packages available for specific platforms:

  • Windows - Download IronPdf.zip
  • Linux - Download IronPdf.Linux.zip
  • Mac - Download IronPdf.MacOs.zip

  • Download and unzip the correct ZIP file for your operating system to a location such as ~/Libs within your Solution directory

  • In Visual Studio Solution Explorer, right click on 'Dependencies' and 'Add Project Reference'. Select Browse and include all the dll extracted from the zip.

Apply License Key

Include this code at the startup of your application, before using IronPDF. This approach is universally effective and easy to implement.

IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"
VB   C#

If you prefer not to apply the license key using inline code, please visit the 'IronPDF License Keys' article to explore alternative methods.


2. Grant Necessary Access to File or Folder

It may sometimes be necessary to add permissions to certain users or roles on your PC.

For instance, each AppDomain requires its own TempFolderPath and Applications in the same AppPool cannot share a TempFolderPath.

Now what does this mean?

An AppDomain simply provides a layer of isolation within a certain process. Everything you think of as per-program is in reality per-AppDomain. Each of these applications in the same application pool requires its own Temporary folder in order to function fully independently.

If necessary for any of the abovementioned troubleshooting options, you can set permissions in the following way:

  1. Right click on a file or folder
  2. Select Properties
  3. Select Security
  4. Click Edit...
  5. Select the desired permissions.

3. Set Installation Path

To render HTML as a PDF, IronPDF must embed Chromium, which is a safe web browser. Luckily, this process is entirely automated.

If IronPDF's HTML to PDF throws a "failed rendering" exception, which is very unlikely, you may have to unpack the native browser binaries to an appropriate location. The Temp folder is normally ideal.

Note: Program Files is never an appropriate location.

Setting IronPdf.Installation.TempFolderPath

You can unpack to the right location by setting the TempFolderPath property of the IronPdf.Installation object as shown here:

IronPdf.Installation.TempFolderPath = @"C:\My\Safe\Path";

After updating a path always remember to clear all temp and cache folders on your development and servers. Redeploy a CLEAN version of your application.

Setting The Temp Folder Environment Variable at Application Scope

IronPDF may occasionally generate Temporary files while rendering and editing PDF documents into a System temp folder. We can set IronPdf.Installation.TempFolderPath to work around this also, yet the Environmental TempPath Directory may still sometimes be used by 3rd party packages.

To resolve this issue we can set the TempPath Environmental Variable application wide in C# application startup. This ensures all temporary files created by your application are stored in a controllable location.

using IronPdf;

// Set Application scope Temp Files Path.
// This changes System.IO.Path.GetTempFileName and System.IO.Path.GetTempPath behavior for the entire .NET application
var MyTempPath = @"C:\Safe\Path\";
Environment.SetEnvironmentVariable("TEMP", MyTempPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", MyTempPath, EnvironmentVariableTarget.Process);

// Set IronPDF Temp Path
IronPdf.Installation.TempFolderPath = System.IO.Path.Combine(MyTempPath, "IronPdf");

// Your PDF Generation and editing code here..E.G.
var Renderer = new IronPdf.ChromePdfRenderer();
using var Doc = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
Doc.SaveAs("example.pdf");
using IronPdf;

// Set Application scope Temp Files Path.
// This changes System.IO.Path.GetTempFileName and System.IO.Path.GetTempPath behavior for the entire .NET application
var MyTempPath = @"C:\Safe\Path\";
Environment.SetEnvironmentVariable("TEMP", MyTempPath, EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("TMP", MyTempPath, EnvironmentVariableTarget.Process);

// Set IronPDF Temp Path
IronPdf.Installation.TempFolderPath = System.IO.Path.Combine(MyTempPath, "IronPdf");

// Your PDF Generation and editing code here..E.G.
var Renderer = new IronPdf.ChromePdfRenderer();
using var Doc = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
Doc.SaveAs("example.pdf");
Imports IronPdf

' Set Application scope Temp Files Path.
' This changes System.IO.Path.GetTempFileName and System.IO.Path.GetTempPath behavior for the entire .NET application
Private MyTempPath = "C:\Safe\Path\"
Environment.SetEnvironmentVariable("TEMP", MyTempPath, EnvironmentVariableTarget.Process)
Environment.SetEnvironmentVariable("TMP", MyTempPath, EnvironmentVariableTarget.Process)

' Set IronPDF Temp Path
IronPdf.Installation.TempFolderPath = System.IO.Path.Combine(MyTempPath, "IronPdf")

' Your PDF Generation and editing code here..E.G.
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim Doc = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
Doc.SaveAs("example.pdf")
VB   C#

4. Permissions and IIS

In the event that the server has been locked down, you may need to give the IIS user (IUSER) read and write permissions to your Installation Path Folder, as well as to your Windows and Temp Folder.


5. Microsoft Visual C++ and Windows Compatibility

IronPDF needs Microsoft Visual C++ to be installed on the target windows machine. It can be packed with an application installer such as an MSI if necessary.

Microsoft Visual C++ is a windows component and is normally present on modern versions of windows unless they have been deliberately stripped down.

The .NET Framework can run as 32-bit (even on 64-bit platforms), so it is necessary to install Visual C++ in both 32 and 64-bit versions.

Here you can download Microsoft Visual C++.


6. Linux Compatibility

7. Docker Compatibility

8. Azure Compatibility

9. Amazon AWS Lambda Compatibility

10. macOS Compatibility