PdfPecker
Invoices, payslips, reports and other templates you control, when you want speed, a small deployment, no browser to keep patched and an MIT licence, with PDF/A, PDF/UA, signatures, forms and e-invoices built in.
What PdfPecker and the usual alternatives can do, from their own documentation. Every converter here is a good choice for something, so the notes say where each one shines.
Turn your phone sideways to see the whole table, or swipe it.
| Feature | Pdf |
HtmlRenderer. |
Iron |
Sync |
Select |
AsposeAspose.HTML and Aspose.PDF | iText pdfHTML | ChromiumChromePuppeteerSharp or Playwright | wkhtmltopdfwkhtml |
|---|---|---|---|---|---|---|---|---|---|
| The basics | |||||||||
| Licence | MIT, freeMIT | BSD-3, on PDFsharp 6.2.4 (MIT); with PDFsharp 6.5 or later it becomes AGPL or paidBSD, MIT | Commercial, per developerPaid | Commercial; free community licence for small companiesPaid | Commercial from $499; free edition up to 5 pagesPaid | CommercialPaid | AGPL-3.0, or a paid commercial licenceAGPL or paid | MIT, freeMIT | LGPL-3.0, freeLGPL |
| Still maintained | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Noarchived in January 2023 |
| Engine | Own, managed C#Own | Own, managed (HtmlRenderer)Own | Chrome, nativeChrome | Chrome (Blink), nativeChrome | Chromium (Blink), nativeChrome | Own (Aspose.HTML)Own | Own, managed C#Own | Chromium browserChrome | Qt WebKit from 2016, nativeWebKit |
| To deploy | 3.1 MB DLL3 MB | 2.4 MB of DLLs2 MB | Native Chrome engine per OSNative | Chrome binaries per OS, plus Linux packagesNative | Bundled Chromium per OSNative | NuGet packagesNuGet | Managed NuGet packagesNuGet | About 600 MB browser600 MB | About 90 MB native binary90 MB |
| No browser or extra process | Yes | Yes | Yesengine runs in your process | Nostarts Chrome to convert | Noruns Chromium | Yes | Yes | Noa browser per server | Partlya process per PDF, or a native DLL |
| Runs JavaScript | Noby design | No | Yes | Yescan be turned off | Yescan be turned off | Yescan be sandboxed | No | Yes | Partlyan old WebKit engine |
| Flexbox and grid | Yesplus var(), calc() and transforms | NoHTML 4 and CSS 2 only | Yeseverything Chrome does | Yeseverything Chrome does | Yeseverything Chrome does | ?not stated in its docs | Partlyflexbox and grid, both incomplete | Yesthe reference for CSS | NoCSS 2.1 and some CSS 3 |
| Right-to-left and complex scripts | Nonot yet | No | Yes | Yes | Yes | ?not stated in its docs | Partlyneeds the paid pdfCalligraph add-on | Yes | Yes |
| PDF features | |||||||||
| PDF/A archiving | YesPDF/A-2b and 3b | ?not stated in its docs | Yes | YesPDF/A-1 to 4 | Yes | Yeswith Aspose.PDF | Yes | No | No |
| PDF/UA accessibility | YesPDF/UA-1, tagged from your HTML | PartlyPDFsharp can tag, but not from your HTML | YesPDF/UA-1 and 2 | YesPDF/UA-1 and 2 | YesPDF/UA-2 in the Universal edition | Yeswith Aspose.PDF | YesPDF/UA-1 and 2 | Partlytagged PDF, no PDF/UA (experimental) | No |
| Digital signatures | YesPAdES, visible boxes, timestamps | Yeswith PDFsharp 6.2 or later | Yes | Yes | Partlysigning in the Windows edition; Universal validates only | Yeswith Aspose.PDF | Yeswith iText Core | No | No |
| Passwords and encryption | YesAES-256 and permissions | Yesup to AES-256 | Yes | Yesup to AES-256 | Yesup to AES-256 | Yes | Yeswith iText Core | No | No |
| Fillable forms from HTML | Yesinputs, check boxes, radios, selects | No | Yes | YesEnableForm | ?not stated in its docs | ?not stated in its docs | Partlyopt-in, limited | Nofields print as static | Partlywith --enable-forms |
| Bookmarks | Yesfrom your headings | Yesthrough the PDFsharp API | Yesthrough its API | Yesfrom your headings | Yesfrom HTML elements | Yeswith Aspose.PDF | Yesfrom your headings | Partlyexperimental outline option | Yesfrom your headings |
| Watermarks | Yestext or image | Yesdrawn with PDFsharp | Yes | Yes | ?not stated in its docs | Yeswith Aspose.PDF | Yeswith iText Core | Nodraw them in your HTML | Nodraw them in your HTML |
| E-invoices | YesFactur-X, ZUGFeRD, PDF in UBL | Partlypaid Factur-X add-on | YesZUGFeRD XML in PDF/A-3 | YesZUGFeRD | YesZUGFeRD and Factur-X, paid edition | ?not stated in its docs | PartlyPDF/A-3 attachments, by hand | No | No |
| Merge PDFs | Yesstreamed, one file at a time | Yeswith PDFsharp | Yes | Yes | Yes | Yeswith Aspose.PDF | Yeswith iText Core | No | No |
| PDF to image | Yesown renderer to PNG | No | Yes | Yes | ?not stated in its docs | Yeswith Aspose.PDF | No | Noscreenshots of HTML only | Nowkhtmltoimage does HTML only |
| Speed on the same 4-core VM | |||||||||
| Invoice, 1 page | 0.86 ms | 5.0 ms | not measured– | 263 ms *263 ms* | not measured– | not measured– | 41 ms *41 ms* | 128 to 142 ms128 ms | 289 ms |
| Report, 30 pages | 39 ms | 473 ms | not measured– | 1.7 s, as 13 pages *1.7 s* | not measured– | not measured– | 4.2 s *4.2 s* | 522 to 539 ms522 ms | 693 ms |
| Peak memory | 83 MB | 255 MB | not measured– | 2,195 MB *2.2 GB* | not measured– | not measured– | 614 MB *614 MB* | 849 to 986 MB849 MB | 164 MB |
Speed figures are medians after warm-up on one 4-core Linux VM with .NET 10, where the Chromium column shows PuppeteerSharp and Playwright. * Syncfusion (as a trial, with its 2-second script wait turned off) and iText come from a later run on the same VM type and are approximate. IronPDF, SelectPdf and Aspose were not measured. A question mark means the converter's documentation doesn't say either way. How it was measured. Checked against each project's public documentation in October 2026; if something has changed, let us know.
PdfPecker is a document engine, not a browser. Pick something else when you need what only a browser does.
Invoices, payslips, reports and other templates you control, when you want speed, a small deployment, no browser to keep patched and an MIT licence, with PDF/A, PDF/UA, signatures, forms and e-invoices built in.
The closest match: also fully managed, in process and free. Its HTML support stops at HTML 4 and CSS 2, so it suits simple layouts, and PDFsharp underneath gives you a solid API for drawing, merging and signing. PDFsharp 6.5 moved to AGPL or a paid licence.
Chrome-exact output with JavaScript, plus a large PDF editing API and paid support, if the licence fits your budget.
Commercial PDF suites that drive Chrome for you, with JavaScript and a wide PDF API. Syncfusion is free for small companies under its community licence, and SelectPdf has a free edition for documents of up to 5 pages.
A large commercial family of document APIs. Aspose.HTML renders the HTML with its own engine, and Aspose.PDF adds PDF/A, PDF/UA, signatures and the rest.
A long-established PDF toolkit with deep standards support, under AGPL or a commercial licence. Complex scripts need its pdfCalligraph add-on.
Free and exactly what Chrome prints, including JavaScript-heavy pages and live websites, at the cost of running a browser.
Archived since 2023 on a WebKit from 2016, so best kept for existing systems that already depend on it.
QuestPDF builds documents from C# code instead of HTML. It's a fine choice when you would rather write layout in code than keep HTML templates.