Five pages per document is the entire ceiling on SelectPdf's Community Edition, the point past which a project pays $499 for a Professional license and two more rendering engines. The HtmlToPdf class and its ConvertUrl method work the same way on either tier, and what changes is that page cap, a missing set of methods for loading, extracting, and filling PDFs, and which of the library's three rendering engines a project may reach for. That last part, more than the tier, usually decides whether a template renders as designed.
Full disclosure. We build IronPDF at Iron Software, and this read looks at where SelectPdf's Windows-only local library and default WebKit engine cost a team, and where IronPDF renders the same page from one cross-platform engine.
That engine split, more than syntax, is what developers moving past IronPDF's own HTML-to-PDF tutorial usually ask about next.
What does SelectPdf's Community Edition limit?
Converting a URL to a PDF is the same short call on either tier.
// Install-Package Select.HtmlToPdf
using SelectPdf;
HtmlToPdf converter = new HtmlToPdf();
PdfDocument doc = converter.ConvertUrl("https://example.com/invoice");
doc.Save("invoice.pdf");
doc.Close();
That call prints a five-page invoice to disk on the Community Edition exactly as written, no code change needed once a project crosses into the Professional tier.
SelectPdf's Community Edition license spells out production terms rather than a trial period, permitting commercial use with no revenue or headcount threshold, though the ceiling is five pages per document and the license withholds PDF loading, text extraction, and form filling, features reserved for the Professional tier. Version 26.3.0, shipped in 2026, brought both the Blink and Chromium options up to the Chromium 148 build, added PDF/UA-1 tagged output, and added PDF/A-3 archival support, with three dated versions in 2026 against roughly one or two a year before. The .NET target range spans .NET Framework 2.0 through .NET 8, 9, and 10, though none of that reaches the page by default since WebKit renders until Blink or Chromium gets requested by name.
That default engine, and the Windows dependency under it, show up as three practical limits.
- The local library only runs on Windows: three vendor sources agree, the NuGet description states SelectPdf runs exclusively on Windows, the homepage routes Linux, macOS, and non-.NET developers to the hosted Online API instead, and the install docs confirm the .NET Core packages require Windows. Moving off Windows swaps an in-process call for a network call to a hosted service, an architecture change, not a drop-in swap.
- The default engine only speaks ES5 JavaScript, and won't produce tagged or PDF/A-3 output: WebKit ships as the default, and the vendor's documentation confirms ES5 is as far as it goes without a switch, so modern JavaScript needs an explicit change to Blink or Chromium. That same default also throws an error on a tagged PDF/UA or PDF/A-3a request, since only Blink or Chromium produce the structure tree those formats need.
-
The bundled local class has no async API: only the separate hosted client does.
SelectPdf.HtmlToPdf's conversion methods are synchronous, and the Task-basedConvertUrlAsyncand its siblings live onSelectPdf.Api.HtmlToPdfClient, the REST wrapper for the hosted service.
The table below carries those terms against IronPDF's, pulled from SelectPdf's own docs and pricing page.
Table 1. SelectPdf's Community and Professional terms against IronPDF.
| Aspect | SelectPdf | IronPDF |
|---|---|---|
| Local library OS support | Windows only | Windows, Linux, and macOS |
| Cross-platform path | Hosted REST API through SelectPdf.Api.HtmlToPdfClient
|
Native and in-process on all three platforms |
| Default rendering engine | WebKit, ES5 JavaScript only | Chromium, current JavaScript by default |
| Tagged PDF/UA and PDF/A-3 output | Needs an explicit switch to Blink or Chromium first | Available from ChromePdfRenderer with no switch |
| Async on the local library | Not on SelectPdf.HtmlToPdf, only on the hosted client |
RenderUrlAsPdfAsync is native async throughout |
| .NET target range | .NET Framework 2.0 through .NET 10 | Current .NET LTS versions |
| Entry list price | $499, Single Developer, one machine | Quote-based, tied to deployment |
How does IronPDF avoid the engine-switch decision?
SelectPdf's own code turns up clean, zero results in NVD, nothing in the GitHub Advisory Database, and Snyk's scanner agrees, though the .NET Standard 2.0 target still pulls in System.Drawing.Common, Microsoft.Win32.Registry, and System.Security.Principal.Windows, anchoring the library to Windows conventions before the rendering engine even gets involved.
This HTML-to-PDF call behaves identically regardless of host OS.
// Install-Package IronPdf
using IronPdf;
var renderer = new ChromePdfRenderer();
PdfDocument pdf = await renderer.RenderUrlAsPdfAsync("https://example.com/invoice");
pdf.SaveAs("invoice.pdf");
That call produces an identical rendered invoice on a Windows box, a Linux container, or a Mac, since ChromePdfRenderer is IronPDF's only rendering engine, so there is no default-versus-modern decision before a template with current JavaScript renders correctly.
RenderUrlAsPdfAsync is native Task-based async in the library, not layered on through a separate network client, a pattern the async how-to covers, and tagged, accessible output comes from that renderer with no switch first.
For a Windows-only deployment that never exceeds five pages per document, the Community Edition's terms above are the ceiling of what SelectPdf needs to offer. Everywhere the target is Linux, a container, or a CI pipeline, that local option isn't available at any tier, and the Chromium call above still runs with no platform check first.
Which tier and engine do you actually need?
A Windows-only project under five pages per document already fits SelectPdf's terms, and version 26.3.0 opens current JavaScript and archival formats too, once Blink or Chromium gets picked on purpose. Move that project to a Linux host, a container, or a CI runner, and the local library drops off the option list regardless of budget, while IronPDF's Chromium engine keeps rendering the same template on any of the three. The right one matches where the code actually has to run.
Has SelectPdf's Windows-only local library ever forced a mid-project rearchitecture for you, or did the five-page cap and the engine default show up earlier, during evaluation? We would like to hear which one hit first, in the comments.
If the Windows-only line above is the one about to block a deployment target on your roadmap, IronPDF's free trial runs that same RenderUrlAsPdfAsync call on Linux or macOS so it can be checked against your own templates before the architecture is locked in.
SelectPdf is a trademark of its owner, and this piece is not affiliated. The version numbers and license terms above are drawn from SelectPdf's own documentation, pricing page, NVD, and the GitHub Advisory Database as they stood at the time of writing. If a detail has changed since, correct us in the comments.













