Generating PDFs
One of the most common requests I get when teaching C# and .NET is, “What open-source library is available to generate PDF files?”
There are many licensed libraries for generating PDF files, but over the years it has been difficult to find cross-platform open-source ones. QuestPDF is the latest example.
QuestPDF uses SkiaSharp and that has implementations for Windows, Mac, and Linux operating systems. The console app that you create in this section to generate PDFs is therefore cross-platform. But on an Apple Silicon Mac, like my Mac mini M1, I had to install the x64 version of .NET 7 and start the project using dotnet run -a x64
. This tells the .NET SDK to use the x64 architecture, otherwise the SkiaSharp libraries give an error because they have not yet been built to target Arm64.
Creating class libraries to generate PDF documents
Let’s see an example of QuestPDF in action. You will create three projects:
-
...