There are two ways you can install IronPDF: native mode and remote engine. By default, native mode is recommended. For deploying to production servers using Docker/Kubernetes, use remote engine mode.
Remote Engine ModeSeparate PDF processing via gRPC protocol.
Best for: Cloud and containerized deployments, legacy OS support.
Package: IronPdf.Slim
Size: More lightweight, taking up a few MB.
Requirements: Requires configuring the connection to host.
Native Mode (Default)Everything runs locally in your application
Best for: Modern Windows, macOS, and Linux deployments.
Package: Full IronPDF NuGet package.
Size: Larger in size (hundreds of MBs), including Chrome and Pdfium binaries.
Requirements: Works on modern operating systems.
3. Installation Options
Installing the C# PDF library takes less than 5 minutes. Get it free via NuGet or direct download and start using it in Visual Studio right away.
Download IronPDF DLL package for your platform: Windows, Linux, macOS
Unzip the ZIP file for your OS to a location within your Solution directory.
In Visual Studio Solution Explorer, right-click on 'Dependencies.'
'Add Project Reference' > Select 'Browse' to include all the DLLs extracted from the zip.
Please note: Please note: Each IronPDF release requires the matching version of IronPdfEngine. Cross-version support isn’t available. For example, IronPDF 2024.2.2 must use IronPdfEngine 2024.2.2.
Install IronPDF using NuGet.
PM > Install-Package IronPdf.Slim
Install-Package IronPdf.Slim
4. Additional Configurations
Manage License
Path & Permission
Remote Engine
After you've purchased or signed up for a 30-day trial of IronPDF, find the license key sent to your email.
Add your license key at the start of your application.
Tips: Make sure to clear all temp and cache folders on your development and servers, then redeploy a clean version of your application after updating a path.
Setting the temp folder environment variable at application scope.
using IronPdf;// Adjusts System.IO.Path.GetTempFileName and System.IO.Path.GetTempPath behavior for the applicationvarMyTempPath = @"C:\Safe\Path\";Environment.SetEnvironmentVariable("TEMP", MyTempPath, EnvironmentVariableTarget.Process);Environment.SetEnvironmentVariable("TMP", MyTempPath, EnvironmentVariableTarget.Process);// Set IronPDF Temp PathIronPdf.Installation.TempFolderPath = System.IO.Path.Combine(MyTempPath, "IronPdf");// Your PDF Generation and editing codevarRenderer = new IronPdf.ChromePdfRenderer();using varDoc = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");Doc.SaveAs("example.pdf");
using IronPdf;
// Adjusts System.IO.Path.GetTempFileName and System.IO.Path.GetTempPath behavior for the 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
var Renderer = new IronPdf.ChromePdfRenderer();
using var Doc = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
Doc.SaveAs("example.pdf");
ImportsIronPdf' Adjusts System.IO.Path.GetTempFileName and System.IO.Path.GetTempPath behavior for the applicationDimMyTempPathAsString = "C:\Safe\Path\"Environment.SetEnvironmentVariable("TEMP", MyTempPath, EnvironmentVariableTarget.Process)Environment.SetEnvironmentVariable("TMP", MyTempPath, EnvironmentVariableTarget.Process)' Set IronPDF Temp PathIronPdf.Installation.TempFolderPath = System.IO.Path.Combine(MyTempPath, "IronPdf")' Your PDF Generation and editing codeDimRendererAs New IronPdf.ChromePdfRenderer()UsingDoc = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")Doc.SaveAs("example.pdf")EndUsing
Imports IronPdf
' Adjusts System.IO.Path.GetTempFileName and System.IO.Path.GetTempPath behavior for the application
Dim MyTempPath As String = "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
Dim Renderer As New IronPdf.ChromePdfRenderer()
Using Doc = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
Doc.SaveAs("example.pdf")
End Using
Tips: On a locked down server, give the IIS user (IUSER) read and write permissions to your installation path folder, as well as to your Windows and Temp Folder.
[Remote IronPdfEngine] After installing the IronPdf.Slim package, connect to the engine container and configure the connection at app startup or before calling any IronPDF method.
Assuming IronPdfEngine runs remotely at 123.456.7.8:33350:
What are the platform requirements to install IronPDF?
IronPDF can be installed on Windows, Linux, and macOS. It supports .NET versions 10, 9, 8, 7, 6, 5, .NET Core, .NET Standard, and .NET Framework. The minimum hardware requirement is 1 Core & 1.75 GB of RAM, but 2 Cores & 8 GB of RAM or higher is recommended.
How can I install IronPDF via NuGet?
To install IronPDF via NuGet, open the Package Manager Console in Visual Studio, right-click on 'References' in Solution Explorer, select 'Manage NuGet Packages', browse and search for IronPDF, then install the selected package.
What are the differences between native mode and remote engine mode for IronPDF?
The native mode is recommended for modern OS deployments and includes the full IronPDF NuGet package with larger file size due to Chrome and Pdfium binaries. The remote engine mode is suited for cloud and containerized deployments, using a more lightweight package with gRPC protocol.
What should I do if my HTML-to-PDF operation is slow on Linux?
You can enable auto-configuration of Linux dependencies, which helps IronPDF auto-install required dependencies, potentially speeding up the first HTML-to-PDF operation.
How do I manage the license for IronPDF?
After obtaining a license key via purchase or a 30-day trial, you can add the key to your application with the `IronPdf.License.LicenseKey` and verify the status using the `IronPdf.License.IsLicensed` property.
Can I run IronPDF on a remote server?
Yes, IronPDF can be run on a remote server using the remote engine mode. You need to configure the connection to the IronPdfEngine on the remote server using gRPC protocol.
How do I set a custom temporary folder path for IronPDF?
You can customize the temporary folder path by setting the `IronPdf.Installation.TempFolderPath` to a desired directory path in your application code.
What are the steps for manual installation of IronPDF?
For manual installation, download the IronPDF DLL package for your platform, unzip the files into your solution directory, then add them as references in Visual Studio's Project Reference section.
How do I deploy IronPDF on Docker?
For Docker deployment, you can choose the remote engine mode for optimal performance and pre-initialize the Chrome engine to preload prerequisites and improve the first-time use experience.
What are the limitations of using the IronPdfEngine in a remote setup?
Each IronPDF release must use the corresponding version of IronPdfEngine for remote setups. Cross-version support is not available, so you need matching versions for the IronPDF and IronPdfEngine components.
Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.