Installation Overview
Complete guide to installing and configuring IronPDF across all platforms.
Get started making PDFs with NuGet now:
Install IronPDF with NuGet Package Manager
Copy and run this code snippet.
IronPdf.ChromePdfRenderer .StaticRenderHtmlAsPdf("<p>Hello World</p>") .SaveAs("pixelperfect.pdf");
Deploy to test on your live environment
1. Platform Requirements
Platform | .NET Version | Hardware | Additional Requirements, Compatibility |
---|---|---|---|
.NET 9, 8, 7, 6, 5, .NET Core, .NET Standard, and .NET Framework. |
|
| |
| |||
All macOS versions since 2020 |
2. Installation Methods
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.
- 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.
- 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.
Go to the IronPDF NuGet library (or Package Manager Console in Visual Studio)
- In Solution Explorer, right-click on References
- Select 'Manage NuGet Packages' > 'Browse' > Search IronPdf
- Select the package and install.
Install-Package IronPdf
- 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.
Install IronPdf using NuGet.
Install-Package IronPdf.Slim
4. Additional Configurations
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.
IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
Check license status.
bool valid = IronPdf.License.IsLicensed;
bool valid = IronPdf.License.IsLicensed;
IRON VB CONVERTER ERROR developers@ironsoftware.com
Set the TempFolderPath property of the IronPdf.Installation object.
IronPdf.Installation.TempFolderPath = @"C:\My\Safe\Path";
IronPdf.Installation.TempFolderPath = @"C:\My\Safe\Path";
IronPdf.Installation.TempFolderPath = "C:\My\Safe\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 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");
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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
[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:
Installation.ConnectToIronPdfHost(
IronPdf.GrpcLayer.IronPdfConnectionConfiguration.RemoteServer("123.456.7.8:33350")
);
Installation.ConnectToIronPdfHost(
IronPdf.GrpcLayer.IronPdfConnectionConfiguration.RemoteServer("123.456.7.8:33350")
);
IRON VB CONVERTER ERROR developers@ironsoftware.com
[Linux] Enable IronPDF to auto-install all required Linux dependencies. The first HTML-to-PDF operation may take longer than usual.
Installation.LinuxAndDockerDependenciesAutoConfig = true;
Installation.LinuxAndDockerDependenciesAutoConfig = true;
IRON VB CONVERTER ERROR developers@ironsoftware.com
[Docker] Pre-initialize Chrome engine to preload prerequisites and speed up first-time use in Docker.
IronPdf.Installation.Initialize();
IronPdf.Installation.Initialize();
IronPdf.Installation.Initialize()
5. Deployment Scenarios
Run & Deploy IronPDF .NET on
Azure FunctionRun & Deploy IronPDF .NET on
AWS LambdaRun IronPDF in
Linux Docker ContainerRun IronPDF as a
Remote ContainerNext Steps
Frequently Asked Questions
How can I set up IronPdfEngine for remote PDF generation?
To set up IronPdfEngine for remote PDF generation, install the `IronPdf.Slim` package from NuGet and configure the connection settings using the `IronPdfConnectionConfiguration` class. This setup allows you to connect your application to the IronPdfEngine instance remotely.
What are the main benefits of using IronPdfEngine with my application?
Using IronPdfEngine with your application allows for remote execution of PDF tasks, helping avoid platform-specific compatibility issues, especially on older systems and mobile platforms. It also eliminates the need for the .NET runtime during execution.
Why might I choose to use IronPdfEngine instead of the native PDF library?
You might choose IronPdfEngine to run performance-intensive PDF functions remotely, reducing compatibility issues with different operating systems and improving performance by leveraging a Chrome-identical renderer for HTML to PDF conversion.
Is horizontal scaling supported in IronPdfEngine?
No, IronPdfEngine currently does not support horizontal scaling, which means it cannot be load-balanced across multiple instances due to the way PDF file binaries are handled in server memory.
Can IronPdfEngine run on different operating systems?
IronPdfEngine is designed to run on Linux systems using Docker containers. However, the binaries are platform-specific, so you need to ensure you are using the correct version for your operating system.
What should I do if my PDF outputs are different when using IronPdfEngine?
PDF outputs may vary slightly due to different operating system behaviors. To minimize differences, ensure you are using the correct Docker image and check for any OS-specific settings that might affect rendering.
How do I ensure my application is using the correct version of IronPdfEngine?
To ensure compatibility, each version of IronPDF requires a matching version of IronPdfEngine. Make sure to update both components simultaneously to avoid cross-version issues.
What are the limitations when using IronPdfEngine on Windows?
When using IronPdfEngine on Windows, you need Linux Containers for Docker and must ensure the server port is reachable. The binaries are platform-specific, and switching to Linux Containers is required.
How do I configure IronPDF to connect to a remote IronPdfEngine server?
To configure IronPDF for a remote server, use Installation.ConnectToIronPdfHost
with the IronPdf.GrpcLayer.IronPdfConnectionConfiguration.RemoteServer
method, specifying the server's IP and port details.
What package should I use to minimize the application size when using IronPdfEngine?
You should use the `IronPdf.Slim` package from NuGet, as it includes only the necessary components for running IronPDF with IronPdfEngine, thereby reducing the application size.