QuestPDF: Modern .NET library for PDF document generation

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • QuestPDF

    QuestPDF is a modern open-source .NET library for PDF document generation. Offering comprehensive layout engine powered by concise and discoverable C# Fluent API. Easily generate PDF reports, invoices, exports, etc.

  • Good point! There's an open issue regarding that, and it seems to be due to the fact that under the hood, QuestPDF uses Skia which itself lacks support for tagged PDF's: https://github.com/QuestPDF/QuestPDF/issues/193

  • gotenberg

    A developer-friendly API for converting numerous document formats into PDF files, and more!

  • This looks great. I am glad to still see good work being done in this space. Interested to see how it compares to that and the other options being floated at the time like Puppet.

    I had used https://gotenberg.dev/ on AWS in the past. Many of the options available at the time weren't usable in Azure outside of a VM due to needing to make use of GDI interfaces that were disabled for security reasons.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • scriban

    A fast, powerful, safe and lightweight scripting language and engine for .NET

  • That's a well trodden path in most languages. A cursory search surfaced this library that looks like it would probably do the job:

    https://github.com/scriban/scriban

  • pdfjet

    PDF library for Java, C#, Swift and Go developers

  • The .NET version of PDFjet supports tagged PDFs:

    https://github.com/edragoev1/pdfjet

    so do the Java, Swift and Go versions.

    While the docs are somewhat sparse, Example_45 shows how to create PDF/UA compliant PDF.

  • TuesPechkin

    A .NET wrapper for the wkhtmltopdf library with an object-oriented API.

  • I've used this one with great success (and its free): https://github.com/tuespetre/TuesPechkin

    its basically a wrapper for wkhtmltopdf but I develop an app that has probably generated a million +/- invoices/statements over the past 5 years with it, and its been rock solid for me. Was a bit of a bear to get it working the first time (not a ton of documentation that I could find at the time), but once working, was easy to add/change new documents/layouts.

    As it uses wkhtmltopdf under to covers, it is a HTML->PDF tool, but I prefer that, at least for my use case.

    Not sure there is a dotnet-core version, so that might be a problem for some.

  • gofpdi

    Go Free PDF Document Importer

  • It shouldn't be too difficult to add support for this. I authored a Go library which adds support for importing PDFs into a new PDF generator (either gofpdf or gopdf). It is around 2,500 lines of code: https://github.com/phpdave11/gofpdi

  • Rotativa

    Rotativa, /rota'tiva/. Make Pdf from Asp.Net MVC. Available on Nuget https://www.nuget.org/packages/Rotativa

  • I've been using Rotativa[1] for URL to PDF generation which is also a wrapper for wkhtmltopdf. They have a dotnet-core[2] version and also a SaaS[3] but I think it's worth mentioning that Azure PaaS supports wkhtmltopdf natively[4] so I just self-host.

    Looking at QuestPDF's API docs, it doesn't look like they support URL / HTML to PDF generation. I think this would be a great addition especially given the age and issues with Rotativa and TuesPechkin on their GitHubs.

    [1] https://github.com/webgio/Rotativa

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Rotativa.AspNetCore

    Rotativa for Asp.Net Core

  • kudu

    Kudu is the engine behind git/hg deployments, WebJobs, and various other features in Azure Web Sites. It can also run outside of Azure.

  • csswg-drafts

    CSS Working Group Editor Drafts

  • The Paged Media spec on counters and counter-resets paints implementations into a corner. They can't both comply with the spec and implement page count resets on page breaks. This has been a known issue with the spec since 2013[1][2] and been a thorn in implementations since.[3]

    1: https://www.w3.org/Style/CSS/Tracker/issues/334

    2: https://github.com/w3c/csswg-drafts/issues/4760

    3: https://github.com/Kozea/WeasyPrint/issues/93#issuecomment-4...

  • WeasyPrint

    The awesome document factory

  • The Paged Media spec on counters and counter-resets paints implementations into a corner. They can't both comply with the spec and implement page count resets on page breaks. This has been a known issue with the spec since 2013[1][2] and been a thorn in implementations since.[3]

    1: https://www.w3.org/Style/CSS/Tracker/issues/334

    2: https://github.com/w3c/csswg-drafts/issues/4760

    3: https://github.com/Kozea/WeasyPrint/issues/93#issuecomment-4...

  • harfbuzz

    HarfBuzz text shaping engine

  • Gold standard? Even though serious bugs are not fixed [1] because "the code is too fragile to touch at this point"? Looks like Android uses HarfBuzz, if so it can't be that bad.

    [1] https://github.com/harfbuzz/harfbuzz/issues/2814

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts