Skip to content
On this page

Design patterns


Document metadata - learn how to apply metadata (e.g. title, author, subject) to the PDF document.

Generating output - describes how to generate PDF and XPS documents, as well as image snapshots of each page.

Execution order - discusses how method invocation order in the Fluent API changes the result.

Creating DSL - shows how to compose standard Fluent API methods into C# extension methods to achieve project-specific functionality and simplify code.

Components - explains how you can prepare implement reusable layout structures shared across many document types.

Dynamic components - describes how to implement most advanced layouts by generating conditional, page-specific content.

Length unit types - list of standard length unit types that can be used instead of points.

Colors - list of predefined colors based on the material design.

Basic fonts - a collection of standard PDF fonts.

Prototyping - learn how to use various additional tools to speed up prototyping process.

Exceptions - explains all exception types thrown by QuestPDF and how to tackle them.


Complex layouts - how to combine the Row and Columns elements to accomplish complex and scalable visual layouts.

Custom first page - using the ShowOnce and SkipOnce elements to achieve custom first page in the document.

Implementing charts - implementing charts and injecting them to the document.

Going production

Platform specific dependencies - describes additional required nuget packages on various platforms, e.g. Linux or MacOS.

Font management - shows how to include custom fonts in your project, so to not rely on the runtime environment.

Reducing output size - discusses various techniques used to reduce size of the PDF output file.

Released under the MIT License.