SelectPdf vs IronPDF. An IronPDF alternative for .NET.

SelectPdf converts HTML to PDF with Chromium 154, released in September 2026; IronPDF ships Chromium 109, from January 2023. SelectPdf costs half as much for a single developer, and in the same open benchmark it passed more output checks, produced every PDF/A and PDF/UA level valid, kept its memory flat over 1,000 conversions, converted 14 of 18 test pages faster on Linux, and ran in Docker without a single apt-get line.

Program.cs
using SelectPdf.Universal;

HtmlToPdf converter = new HtmlToPdf();
converter.Options.MarginTop = 57;    // 57 pt = 20 mm

converter.Options.DisplayFooter = true;
converter.Footer.Add(new PdfTextSection(0, 10,
    "Page {page_number} of {total_pages}")
    { HorizontalAlign = PdfTextHorizontalAlign.Center });

PdfDocument doc = converter.ConvertHtmlString(html);
doc.Save("report.pdf");
doc.Close();

HTML to PDF with a "Page N of M" footer in SelectPdf.

§OVERVIEW

IronPDF and SelectPdf at a glance.

IronPDF is a commercial .NET PDF library from Iron Software. SelectPdf.Universal is the cross-platform .NET PDF library from SelectPdf. Both convert URLs and HTML strings to PDF with a Chromium-based engine, so modern CSS, web fonts and JavaScript render in both, and both create, edit and read PDF documents: merge and split, watermarks and stamps, form filling, text extraction, PDF to image, digital signatures and PDF/A.

Comparisons written before October 2026 describe SelectPdf as a Windows-only library with WebKit and Blink engines. That was the classic SelectPdf library. Since version 26.4, SelectPdf.Universal runs on Windows, Linux, macOS and in Docker with Chromium, and version 26.5 added a remote engine for Alpine Linux and Kubernetes. The classic library is still maintained for Windows, and one license covers both.

SelectPdfIronPDF
HTML engineChromium 154.0.8037.58 (stable since September 22, 2026), in a NuGet engine packageChromium 109.0.5414.120 (stable since January 10, 2023), in NuGet packages
NuGet packagesSelectPdf.Universal + one engine package per platformIronPdf (Windows), IronPdf.Linux
.NET.NET 8 and 10, and .NET Framework 4.6.1+ / .NET Core through .NET Standard 2.0.NET 5 to 10, .NET Core, .NET Framework 4.6.2+
PlatformsWindows (x64, x86), Linux (x64, ARM64), macOS on Apple Silicon, Docker; Alpine and Kubernetes through the remote engineWindows, Linux, macOS
Linux packages in Dockernonean apt-get list from IronPDF's Docker guide
Trying it30-day trial without a key (a "Demo Version" banner on each page); free Community Edition for HTML to PDF up to 5 pages30-day trial key
Licenseperpetual, from USD 499perpetual, from USD 999

Moving from one to the other is mostly renaming types and converting units: SelectPdf margins are in points where IronPDF's are in millimetres, and the page-number placeholders change. The sections below show where SelectPdf comes out ahead, how to migrate IronPDF code to SelectPdf, and what each license costs.

§SELECTPDF VS IRONPDF

Where SelectPdf is ahead.

Prices from each vendor's pricing page. Measurements from the 2026-10-15 run of the open pdf-benchmarks harness: IronPDF 2026.10.3 and SelectPdf.Universal 26.5.0 on the same machine.

SelectPdfIronPDF
Chromium version154, from September 2026109, from January 2023
Entry license (1 developer)USD 499USD 999
1 developer, SaaS or redistributed softwareUSD 799 (Single Developer OEM)USD 3,498 (Plus + OEM Redistribution add-on)
HTML to PDF on Linux, average of 18 test pages134 ms169 ms
Test pages converted faster, Linux14 of 184 of 18
Cold start, Linux745 ms1,090 ms
Conversions a minute, 8 at once, Linux2,5971,520
Content checks passed46 of 4841 of 48
Fidelity to Chrome, mean SSIM0.9840.928
PDF/A, PDF/UA and PDF/X levels validall 175 of the 14 it produces
Tagged structure checks (accessible PDFs)112 of 11242 of 112
Memory after 1,000 conversions, Windows140 → 156 MB226 → 630 MB
Memory after 1,000 conversions, Linux369 → 389 MB451 → 1,076 MB
Docker on the official .NET imageroot and non-root, no extra packagesroot only; non-root needs IronPDF's apt-get list
Text search in a PDFPdfToText.Searchno API

Every number above, with the rest of the measurements, is in the full table below.

§MIGRATE FROM IRONPDF

Migrate IronPDF code to SelectPdf.

The same document in both libraries: an HTML page with a centred header and a "Page N of M" footer. Install the library and the engine package for your platform:

terminal
dotnet add package SelectPdf.Universal
dotnet add package SelectPdf.Universal.Native.win-x64

IronPDF:

Program.cs (IronPDF)
using IronPdf;

License.LicenseKey = "...";

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Quarterly report",
};
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    CenterText = "Page {page} of {total-pages}",
};

PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");

SelectPdf:

Program.cs (SelectPdf)
using SelectPdf.Universal;

HtmlToPdf converter = new HtmlToPdf();

converter.Options.DisplayHeader = true;
converter.Header.Height = 40;
PdfTextSection header = new PdfTextSection(0, 15, "Quarterly report",
    PdfFont.CreateStandardFont(PdfStandardFont.Helvetica, 10));
header.HorizontalAlign = PdfTextHorizontalAlign.Center;
converter.Header.Add(header);

converter.Options.DisplayFooter = true;
converter.Footer.Height = 40;
PdfTextSection footer = new PdfTextSection(0, 10, "Page {page_number} of {total_pages}",
    PdfFont.CreateStandardFont(PdfStandardFont.Helvetica, 10));
footer.HorizontalAlign = PdfTextHorizontalAlign.Center;
converter.Footer.Add(footer);

PdfDocument doc = converter.ConvertHtmlString(html);
doc.Save("report.pdf");
doc.Close();

Thirteen tasks side by side, from hello world to merge, watermarks, forms, text extraction, images, signatures, PDF/A and an ASP.NET Core endpoint, each built and checked, are in the migration guide on GitHub.

§API MAPPING

Map IronPDF APIs to SelectPdf.

SelectPdf margins are in points (1 mm is about 2.83 pt) and delays in seconds.

IronPDFSelectPdf
ChromePdfRendererHtmlToPdf
RenderHtmlAsPdf(html) / RenderUrlAsPdf(url)ConvertHtmlString(html) / ConvertUrl(url)
RenderingOptionsOptions
MarginTop = 20 (mm)MarginTop = 57 (pt)
WaitFor.RenderDelay(2000)ConversionDelay = 2
TextHeader, HtmlHeader (and footers)Header / Footer with PdfTextSection or PdfHtmlSection
{page}, {total-pages}{page_number}, {total_pages}
PdfDocument.FromFile / SaveAsnew PdfDocument(path) / Save
PdfDocument.MergeAppend
ApplyWatermarka page template with a PdfTextElement
Form.FindFormFieldPdfFormManager
ExtractAllTextPdfToText
RasterizeToImageFilesPdfRasterizer
PdfSignature + SignPdfDigitalSignatureElement
SaveAsPdfAConvertToPdfA

The complete mapping, with every option, is in the migration guide; every class is in the documentation.

§PRICING

IronPDF and SelectPdf pricing.

Both sell perpetual licenses with one year of updates. Each situation is priced with the cheapest published license that covers it; prices read on 2026-10-22.

SituationSelectPdfIronPDF
1 developer, internal applicationSingle Developer, USD 499Lite, USD 999
1 developer, SaaS or software sold to customersSingle Developer OEM, USD 799Plus (3 developers) + OEM Redistribution add-on, USD 3,498; the add-on is not offered with Lite
5 developers, internal5-Developers, USD 799Professional (up to 10), USD 2,399 (USD 2,999 from November 1, 2026)
Unlimited developers, SaaS or redistributedEnterprise OEM, USD 1,599Unlimited + OEM Redistribution add-on, USD 6,798 (USD 7,998 from November 1, 2026)

From ironpdf.com/licensing and SelectPdf pricing. After the first year, renewing updates and support is optional with both: IronPDF's renewal is USD 599 a year for Lite. Iron Software has announced higher Professional and Unlimited prices from November 1, 2026; check both pages for current terms before buying. One SelectPdf license covers SelectPdf.Universal and the classic Windows library.

§MEASURED SIDE BY SIDE

The full measurement.

IronPDF 2026.10.3 and SelectPdf.Universal 26.5.0 on every axis of the 2026-10-15 run, on one machine under Windows and Linux, generated from the raw data. The method, per-page numbers and eight other .NET PDF libraries are on the results page; the harness is open source, so every number can be re-run.

The Linux results as a video · 4:14 · Watch on YouTube · Short · 1:00
IronPDFSelectPdf
HTML to PDF, geometric mean of 18 page medians, ms (Windows)186212
Pages converted faster than the other library (Windows)14 of 184 of 18
Cold start, ms (Windows)657714
Throughput, conversions/min, 1 / 4 / 8 at once, sync (Windows)480 / 1,485 / 1,735353 / 948 / 1,078
Throughput, conversions/min, 1 / 4 / 8 at once, async (Windows)447 / 1,456 / 1,705323 / 926 / 1,158
Memory, one page / 8 at once, MB (Windows)244 / 788205 / 467
Memory over 1,000 conversions, MB (Windows)226 → 630, 0 failures140 → 156, 0 failures
Page that never loads: gives up after, s (Windows)6660
Parallel output equals sequential (Windows)32 / 3232 / 32
HTML to PDF, geometric mean of 18 page medians, ms (Linux)169134
Pages converted faster than the other library (Linux)4 of 1814 of 18
Cold start, ms (Linux)1,090745
Throughput, conversions/min, 1 / 4 / 8 at once, sync (Linux)453 / 1,332 / 1,520619 / 1,929 / 2,597
Throughput, conversions/min, 1 / 4 / 8 at once, async (Linux)468 / 1,231 / 1,704603 / 1,872 / 2,639
Memory, one page / 8 at once, MB (Linux)730 / 1,322462 / 727
Memory over 1,000 conversions, MB (Linux)451 → 1,076, 0 failures369 → 389, 0 failures
Page that never loads: gives up after, s (Linux)6660
Parallel output equals sequential (Linux)31 / 3232 / 32
Content checks passed (Windows)41 / 4846 / 48
Content checks passed (Linux)41 / 4846 / 48
Fidelity vs Chrome, mean SSIM (Windows)0.9280.984
PDF/A, PDF/UA, PDF/X: levels produced / valid (of 17)14 / 517 / 17
Tagged structure checks42 / 112112 / 112
Text extraction, lowest F10.960.97
Searchnot supportedsupported
PDF to imagesupportedsupported
Word to PDFsupportedsupported
Redactionsupportedsupported
Mergesupportedsupported
Splitsupportedsupported
Watermarksupportedsupported
Digital signaturesupportedsupported
Form fillingsupportedsupported
ZUGFeRD / Factur-Xsupportedsupported
Docker, minimal image (Linux)runs as root only, 206 MBruns, 270 MB
Docker, vendor-documented image (Linux)runs, 239 MBnot needed (the minimal image runs)
Publish size win-x64 / linux-x64, MB321.3 / 314.6477.0 / 449.6
§LINUX · DOCKER · ARM64

Linux, Docker and ARM64.

The engine package bundles the Chromium libraries, so a Docker image built from the official .NET images needs no apt-get lines and no installation settings, and it runs as root or as a non-root user. Linux x64 and ARM64 each have their own package; Linux needs glibc 2.30 or later (Debian 11+, Ubuntu 20.04+, RHEL 9+). On Alpine, the conversions run in the SelectPdf engine container instead.

Step by step: HTML to PDF in Docker on Linux. Both libraries' Dockerfiles are side by side in the C# PDF libraries comparison.

?FAQ

Questions, answered.

Something else? Write to support@selectpdf.com with your settings and, if you can, the HTML.

No. Since version 26.4 (October 2026), SelectPdf.Universal runs on Windows (x64 and x86), Linux (x64 and ARM64), macOS and in Docker, and through its remote engine on Alpine Linux and in Kubernetes. The Windows-only library that comparisons written before October 2026 describe is the classic SelectPdf library, which is still maintained for Windows.
SelectPdf.Universal renders HTML with Chromium only: Chromium 154 in version 26.5. The classic Windows library keeps its WebKit and Blink engines next to Chromium, for existing projects.
Yes. Besides HTML to PDF, SelectPdf.Universal creates, merges, splits and edits PDF documents, fills forms, extracts text, redacts text, images and form fields, and signs with certificates, USB tokens, smart cards and HSMs, with long-term validation. It also converts Word documents to PDF and produces PDF/A and accessible PDF/UA output.
No. The types, the units and the header placeholders differ: margins are in points instead of millimetres, and {page} and {total-pages} become {page_number} and {total_pages}. Most of the move is renaming and converting units, and the migration guide on GitHub shows each change on a working project.
Yes, but different versions. SelectPdf.Universal 26.5 ships Chromium 154, stable since September 2026. IronPDF 2026.10.3 ships Chromium 109, stable since January 2023, so CSS and JavaScript features added to Chromium since then are not available in IronPDF's output. Compare a few of your own documents before switching.
A SelectPdf Single Developer license is USD 499, against USD 999 for IronPDF Lite. Both are perpetual with one year of updates. For a SaaS product or redistributed software, SelectPdf's Single Developer OEM license is USD 799; IronPDF adds an OEM Redistribution add-on of USD 1,999, offered with its Plus, Professional and Unlimited licenses but not with Lite, so the smallest IronPDF license for that use is Plus with the add-on, USD 3,498.
On Linux, yes: in the open benchmark of 2026-10-15 SelectPdf converted 14 of 18 test pages faster (134 ms against 169 ms on average), started faster (745 ms against 1,090 ms) and completed more conversions a minute at every concurrency (2,597 against 1,520 with 8 at once). On Windows IronPDF was faster on most pages and in throughput; SelectPdf was faster on long documents, HTML strings and CJK text. The full table is on this page.
No. Without a key it runs as a 30-day trial and adds a "Demo Version" banner to each page. A purchased key is set with GlobalProperties.LicenseKey.
No. The engine package bundles the Chromium libraries it needs, so the official .NET images work as they are, as root or as a non-root user. Linux needs glibc 2.30 or later.
Yes. The SelectPdf Community Edition converts HTML to PDF for free, including in production, for documents up to 5 pages. The full library needs a license.