QuestPDF 2025.12.2

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package QuestPDF --version 2025.12.2
                    
NuGet\Install-Package QuestPDF -Version 2025.12.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="QuestPDF" Version="2025.12.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuestPDF" Version="2025.12.2" />
                    
Directory.Packages.props
<PackageReference Include="QuestPDF" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add QuestPDF --version 2025.12.2
                    
#r "nuget: QuestPDF, 2025.12.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package QuestPDF@2025.12.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=QuestPDF&version=2025.12.2
                    
Install as a Cake Addin
#tool nuget:?package=QuestPDF&version=2025.12.2
                    
Install as a Cake Tool

QuestPDF - Modern PDF library for C# developers

QuestPDF is a production-ready library that lets you design documents the way you design software: with clean, maintainable, strong-typed C# code. Stop fighting with HTML-to-PDF conversion. Build pixel-perfect reports, invoices, and exports using the language and tools you already love.

GitHub Stars and Stargazers

Nuget package download

QuestPDF License


Home Page

Quick Start

Real-world Invoice Tutorial

Features Overview

License

NuGet


🚀 Quick start

Learn how easy it is to design, implement and generate PDF documents using QuestPDF. Effortlessly create documents of all types such as invoices and reports.

using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;

// set your license here:
// QuestPDF.Settings.License = LicenseType.Community;

Document.Create(container =>
{
    container.Page(page =>
    {
        page.Size(PageSizes.A4);
        page.Margin(2, Unit.Centimetre);
        page.PageColor(Colors.White);
        page.DefaultTextStyle(x => x.FontSize(20));
        
        page.Header()
            .Text("Hello PDF!")
            .SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);
        
        page.Content()
            .PaddingVertical(1, Unit.Centimetre)
            .Column(x =>
            {
                x.Spacing(20);
                
                x.Item().Text(Placeholders.LoremIpsum());
                x.Item().Image(Placeholders.Image(200, 100));
            });
        
        page.Footer()
            .AlignCenter()
            .Text(x =>
            {
                x.Span("Page ");
                x.CurrentPageNumber();
            });
    });
})
.GeneratePdf("hello.pdf");

The code above produces the following PDF document:

Preview of a PDF document showing the Hello World example

Quick Start Tutorial

The library is free for individuals, non-profits, all FOSS projects, and organizations under $1M in annual revenue. Read more about licensing here

Everything you need to generate PDFs

From layout and styling to production features, QuestPDF gives you the flexibility to create documents of any complexity.

🎨 Visual Content:

  • Page attributes (header, footer, background, watermark, margin),
  • Text (font style, paragraph style, page numbers),
  • Styled containers (background, border, rounded corners, colors and gradients, shadows),
  • Lines (vertical and horizontal, colors and gradients, dash pattern)
  • Images (PNG, JPG, WEBP, SVG),

🔀 Layout:

  • Tables,
  • Lists,
  • Layers,
  • Column / Row,
  • Inlined,

📐 Positional:

  • Alignment,
  • Size Controls (width / height),
  • Padding,

🛠️ Other:

  • Page Breaking Control,
  • Aspect Ratio,
  • Integrations (maps, charts, barcodes, QR codes),
  • Hyperlinks,
  • Z-index,

Explore All QuestPDF Features

Familiar Programming Patterns

Use your existing programming language and patterns to ship faster with less training.

Loops, conditionals, functions are natively supported. Leverage IntelliSense, inspections, navigation, and safe refactoring.

container.Column(column =>
{
    column.Item().Text("Order Items").Bold();

    if (Model.ShowSummary)
        column.Item().Element(ComposeOrderSummary);

    foreach (var item in Model.Items)
        column.Item().Element(c => ComposeItem(c, item));
});

Review document changes like any other code. Get clean diffs, PR approvals, and traceable history.

void ComposeItem(IContainer container, OrderItem item)
{
    container
        .Border(1, Colors.Grey.Darken2)
        .Background(item.HighlightColor)
-       .Padding(12)
+       .Padding(16)
        .Row(row =>
        {
            row.RelativeItem().Text(item.Name);
            row.AutoItem().Text($"{item.Price:F2} USD");
        });
}

Companion App

Accelerate development with live document preview and hot-reload capability. See your changes instantly without recompiling.

  • Explore PDF document hierarchy and navigate its structure
  • Quickly magnify and measure content
  • Debug runtime exceptions with stack traces and code snippets
  • Identify, understand and solve layout errors

Screenshot showing the QuestPDF Companion App

Learn about QuestPDF Companion App

Learn about QuestPDF Companion App

Enterprise-grade foundations

  • Predictable Development — Eliminate CSS debugging, browser quirks, and layout surprises common with HTML-to-PDF tools. What you code is what you get.

  • Source-available - Entire QuestPDF source code is available for review and customization, ensuring transparency and compliance with your organization's requirements.

  • Complete Data Privacy - QuestPDF runs entirely within your infrastructure with no external API calls, internet requirement, or background data collection. As a company, we do not access, collect, store, or process your private data.

  • Comprehensive Layout Engine - A powerful layout engine built specifically for PDF generation. Gain full control over document structure, precise content positioning, and automatic pagination.

  • Advanced Language Support - Create multilingual documents with full RTL language support, advanced text shaping, and bi-directional layout handling.

  • High Performance - Generate thousands of pages per second while maintaining minimal CPU and memory usage. Perfect for high-throughput enterprise applications.

  • Optimized File Size - Drastically reduce file sizes without compromising quality. Benefit from automatic font subsetting, optimal image compression, and efficient file compression.

Perform common PDF operations

Leverage a powerful C# Fluent API to create, customize, and manage your PDF documents with ease.

  • Merge documents
  • Attach files
  • Extract pages
  • Encrypt / decrypt
  • Extend metadata – Limit access
  • Optimize for Web
  • Overlay / underlay
DocumentOperation
    .LoadFile("input.pdf")
    .TakePages("1-10")
    .MergeFile("appendix.pdf", "1-z") // all pages
    .AddAttachment(new DocumentAttachment
    {
        FilePath = "metadata.xml"
    })
    .Encrypt(new Encryption256Bit
    {
        OwnerPassword = "mypassword",
        AllowPrinting = true,
        AllowContentExtraction = false
    })
    .Save("final-document.pdf");

Learn Document Operation API

Works everywhere you do

Deploy on any major operating system and integrate seamlessly with your favorite IDEs, cloud platforms, and development tools.

Platform Support
Operating Systems Windows, Linux, macOS
Frameworks .NET 6+ and .NET Framework 4.6.2+
Cloud Azure, AWS, Google Cloud, Others
Containers Docker, Kubernetes
IDEs Visual Studio, VS Code, JetBrains Rider, Others

Industry-standard PDF compliance

Generate PDF documents that meet the strictest archival and accessibility requirements. Every build is automatically validated using the open-source veraPDF and Mustang tools.

  • PDF/A (Archival):

    • Purpose: ISO 19005 standard for long-term preservation. Ensures PDFs remain readable and visually identical for decades without external dependencies.
    • Supported Standards: PDF/A-2b, PDF/A-2u, PDF/A-2a, PDF/A-3b, PDF/A-3u, PDF/A-3a
  • PDF/UA (Accessibility):

    • Purpose: ISO 14289 standard for universal accessibility. Includes full support for screen readers and assistive technologies for people with disabilities.
    • Supported Standards: PDF/UA-1
  • EN 16931 (E-Invoicing):

    • Purpose: European standard for electronic invoicing. Embeds structured invoice data (XML) within PDF documents for automated processing.
    • Supported Standards: ZUGFeRD, Factur-X

Fair and Sustainable License

A model that benefits everyone. Commercial licensing provides businesses with legal safety and long-term stability, while funding a feature-complete, unrestricted library for the open-source community.

  • Actively maintained with regular feature, quality, and security updates
  • Full source code available on GitHub
  • All features included in every tier without restrictions
  • Predictable pricing: no per-seat, per-server, or usage fees

The library is free for individuals, non-profits, all FOSS projects, and organizations under $1M in annual revenue.

QuestPDF Pricing

QuestPDF License Terms

See a real-world example

Follow our detailed tutorial and see how easy it is to generate a fully functional invoice with fewer than 250 lines of C# code.

  • Step-by-step guidance
  • Production-ready code
  • Best practices included

Preview of a PDF document being an output of the Real-World Invoice tutorial

Read Real-world Invoice Tutorial

Community QuestPDF

We are incredibly grateful to our .NET Community for their positive reviews and recommendations of the QuestPDF library. Your support and feedback are invaluable and motivate us to keep improving and expanding this project. Thank you for helping us grow and reach more developers!

Nick Chapsas: The Easiest Way to Create PDFs in .NET

Nick Chapsas The Easiest Way to Create PDFs in .NET

JetBrains: OSS Power-Ups: QuestPDF

JetBrains OSS Power-Ups: QuestPDF

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

  • net10.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (72)

Showing the top 5 NuGet packages that depend on QuestPDF:

Package Downloads
HTMLToQPDF

Relorer.QuestPDF.HTML is an extension for QuestPDF that allows to generate PDF from HTML

DH.QuestPDF

DH框架的Pdf处理库。基于https://github.com/QuestPDF/QuestPDF

AgentHub.Service.Financial.Domain.Shared

Package Description

QuestPDF.Markdown

QuestPDF.Markdown is an open-source helper library that allows rendering markdown into a QuestPDF document

Verify.QuestPDF

Extends Verify (https://github.com/VerifyTests/Verify) to allow verification via QuestPDF.

GitHub repositories (19)

Showing the top 19 popular GitHub repositories that depend on QuestPDF:

Repository Stars
Live-Charts/LiveCharts2
Simple, flexible, interactive & powerful charts, maps and gauges for .Net, LiveCharts2 can now practically run everywhere Maui, Uno Platform, Blazor-wasm, WPF, WinForms, Xamarin, Avalonia, WinUI, UWP.
Pixeval/Pixeval
Wow. Yet another Pixiv client!
ariacom/Seal-Report
Database Reporting Tool and Tasks (.Net)
neozhu/CleanArchitectureWithBlazorServer
This repository is designed to create an enterprise Blazor Server application that follows the principles of Clean Architecture and implements Blazor Clean Architecture best practices for scalability, maintainability, and testability.
NickvisionApps/Denaro
Manage your personal finances
ZeusAutomacao/DFe.NET
Biblioteca para Geração de NFe(2.0, 3.10 e 4.0) e NFCe(3.10 e 4.0) e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx
EvotecIT/OfficeIMO
Fast and easy to use cross-platform .NET library that creates or modifies Microsoft Word (DocX) and later also Excel (XLSX) files without installing any software. Library is based on Open XML SDK
YSGStudyHards/DotNetExercises
⚔【DotNetGuide专栏C#/.NET/.NET Core编程技巧练习集】C#/.NET/.NET Core编程常用语法、算法、技巧、中间件、类库、工作业务实操练习集,配套详细的文章教程和代码示例,助力快速掌握C#/.NET/.NET Core中各种编程常用语法、算法、技巧、中间件、类库、工作业务实操等等。
axzxs2001/Asp.NetCoreExperiment
原来所有项目都移动到**OleVersion**目录下进行保留。新的案例装以.net 5.0为主,一部分对以前案例进行升级,一部分将以前的工作经验总结出来,以供大家参考!
Corsinvest/cv4pve-admin
Corsinvest for Proxmox VE Web Admin Clusters - vCenter but for Proxmox VE
QuestPDF/QuestPDF-ExampleInvoice
BoletoNet/BoletoNetCore
Versão do BoletoNet para .NET Core
Ozark-Connect/NetworkOptimizer
Self-hosted performance optimization and security audit tool for UniFi Networks. Includes advanced DNS, VLAN, and firewall security checks, centralized LAN speed test server w/ Layer 2 tracing, U5G-Max modem stats, and more.
zmrid/iMES-Factory
iMES工厂管家——您的新一代工厂助手。演示地址:https://imes.625sc.com。 一款基于.NetCore3.1和Vue3的MES管理系统。项目亮点:模版打印,Excel模版导出,自定义实体扩展,移动端精美设计,大屏设计等功能。
Hercules-NET/ZeusFiscal
A Principal Biblioteca em C# para Emissão e Impressão de NFe, NFCe, MDF-e e CT-e
markjprice/apps-services-net8
Repository for the Packt Publishing book titled "Apps and Services with .NET 8" by Mark J. Price
kyoyama-kazusa/Sudoku
A sudoku solver using brute forces and logical techniques.
bingbing-gui/dotnet-platform
这是一个围绕 新一代 .NET 应用模型 的实践型仓库,覆盖 Web、云原生、AI、微服务等多种应用形态。
Relorer/HTMLToQPDF
HTMLToQPDF is an extension for QuestPDF that allows to generate PDF from HTML
Version Downloads Last Updated
2025.12.3.1-alpha2 0 1/18/2026
2025.12.3.1-alpha 53 1/17/2026
2025.12.3 2,153 1/16/2026
2025.12.2 9,816 1/12/2026
2025.12.1 71,868 12/25/2025
2025.12.0 68,131 12/12/2025
2025.12.0-alpha4 5,304 11/7/2025
2025.12.0-alpha3 1,297 10/31/2025
2025.12.0-alpha2 3,402 10/8/2025
2025.12.0-alpha1 3,493 9/25/2025
2025.12.0-alpha0 3,587 9/5/2025
2025.7.4 268,713 11/3/2025
2025.7.3 182,257 10/14/2025
2025.7.2 158,238 9/25/2025
2025.7.1 297,589 8/27/2025
2025.7.0 510,990 7/3/2025
2025.6.0-rc0 806 6/25/2025
2025.5.1 202,477 6/5/2025
2025.5.0 204,240 5/15/2025
2025.4.4 62,919 5/12/2025
2025.4.3 110,705 5/5/2025
2025.4.2 41,632 5/1/2025
2025.4.1 2,025 5/1/2025
2025.4.0 296,250 4/7/2025
2025.1.7 179,510 3/21/2025
2025.1.6 102,242 3/13/2025
2025.1.5 151,398 3/3/2025
2025.1.4 29,391 2/28/2025
2025.1.3 83,109 2/20/2025
2025.1.2 96,007 2/8/2025
2025.1.1 52,422 2/3/2025
2025.1.0 47,130 2/2/2025
2025.1.0-rc0 3,740 1/24/2025
2025.1.0-alpha0 13,279 12/4/2024
2024.12.3 297,939 1/24/2025
2024.12.2 257,766 1/4/2025
2024.12.1 208,862 12/9/2024
2024.12.0 69,921 12/4/2024
2024.12.0-rc3 5,073 11/29/2024
2024.12.0-rc2 3,793 11/22/2024
2024.12.0-rc1 314 11/22/2024
2024.12.0-rc0 10,641 11/18/2024
2024.10.4 145,306 11/22/2024
2024.10.3 206,830 11/8/2024
2024.10.2 232,560 10/24/2024
2024.10.1 169,369 10/14/2024
2024.10.0 98,471 10/4/2024
2024.10.0-rc4 6,269 9/26/2024
2024.10.0-rc3 23,396 9/17/2024
2024.10.0-rc2 545 9/16/2024
2024.10.0-rc1 442 9/13/2024
2024.10.0-rc0 7,386 9/4/2024
2024.7.3 394,146 8/27/2024
2024.7.2 285,221 8/1/2024
2024.7.1 119,959 7/22/2024
2024.7.0 75,219 7/15/2024
2024.7.0-rc0 4,566 7/4/2024
2024.6.4 138,960 6/25/2024
2024.6.3 2,019 6/25/2024
2024.6.2 67,103 6/20/2024
2024.6.1 34,928 6/15/2024
2024.6.0 110,571 6/11/2024
2024.3.10 137,954 5/25/2024
2024.3.9 18,122 5/23/2024
2024.3.8 1,830 5/23/2024
2024.3.7 40,239 5/20/2024
2024.3.6 55,362 5/14/2024
2024.3.5 43,014 5/12/2024
2024.3.4 51,168 5/6/2024
2024.3.3 19,318 5/2/2024
2024.3.2 68,767 4/25/2024
2024.3.1 59,450 4/22/2024
2024.3.0 170,199 4/12/2024
2024.3.0-rc2 7,045 3/30/2024
2024.3.0-rc1 384 3/29/2024
2024.3.0-rc 779 3/27/2024
2024.3.0-beta1 3,730 3/18/2024
2024.3.0-beta 5,137 2/29/2024
2024.3.0-alpha 1,978 2/15/2024
2023.12.6 493,458 2/21/2024
2023.12.5 122,384 2/7/2024
2023.12.4 240,846 1/15/2024
2023.12.3 26,228 1/12/2024
2023.12.2 96,857 1/1/2024
2023.12.1 107,352 12/15/2023
2023.12.0 77,675 12/3/2023
2023.10.2 115,850 11/13/2023
2023.10.1 69,103 10/31/2023
2023.10.0 42,525 10/23/2023
2023.10.0-alpha0 512 10/13/2023
2023.9.1 68,467 10/6/2023
2023.9.0 52,552 9/25/2023
2023.6.3 193,446 8/27/2023
2023.6.2 1,592 8/26/2023
2023.6.1 149,865 7/20/2023
2023.6.0 128,643 6/28/2023
2023.5.3 259,117 6/12/2023
2023.5.2 85,813 5/31/2023
2023.5.1 36,615 5/22/2023
2023.5.0 14,860 5/15/2023
2023.4.2 18,431 5/9/2023
2023.4.1 6,558 5/4/2023
2023.4.0 5,107 5/4/2023
2022.12.15 823,498 2/7/2024
2022.12.14 89,073 1/12/2024
2022.12.13 13,777 1/1/2024
2022.12.12 35,646 12/15/2023
2022.12.11 47,016 12/3/2023
2022.12.10 16,652 11/13/2023
2022.12.9 4,324 10/31/2023
2022.12.8 65,164 10/23/2023
2022.12.7 127,414 10/6/2023
2022.12.6 645,095 5/9/2023
2022.12.5 192,611 4/27/2023
2022.12.4 59,166 4/22/2023
2022.12.3 85,218 4/16/2023
2022.12.2 429,388 3/12/2023
2022.12.1 734,203 1/13/2023
2022.12.0 191,837 12/14/2022
2022.11.0 463,831 11/5/2022
2022.11.0-alpha1 551 11/1/2022
2022.11.0-alpha0 509 10/28/2022
2022.9.1 107,514 10/15/2022
2022.9.0 172,425 9/18/2022
2022.9.0-alpha1 484 9/16/2022
2022.8.2 213,718 8/21/2022
2022.8.1 21,409 8/19/2022
2022.8.0 117,479 8/15/2022
2022.6.3 68,434 7/18/2022
2022.6.2 187,831 6/22/2022
2022.6.1 25,340 6/12/2022
2022.6.0 170,943 6/12/2022
2022.6.0-prerelease 2,078 5/30/2022
2022.5.0 320,172 5/9/2022
2022.4.1 129,982 4/8/2022
2022.4.0 80,338 4/4/2022
2022.4.0-alpha1 540 3/27/2022
2022.4.0-alpha0 496 3/27/2022
2022.3.1 109,467 3/15/2022
2022.3.0 3,759 3/14/2022
2022.2.7 2,114 3/12/2022
2022.2.6 7,006 3/8/2022
2022.2.5 26,403 2/18/2022
2022.2.4 1,043 2/18/2022
2022.2.3 12,534 2/7/2022
2022.2.2 2,413 2/1/2022
2022.2.1 2,128 1/30/2022
2022.2.0 2,261 1/29/2022
2022.2.0-beta1 561 1/24/2022
2022.1.0 34,020 1/10/2022
2022.1.0-beta5 1,191 1/7/2022
2022.1.0-beta4 565 1/6/2022
2022.1.0-beta3 536 1/5/2022
2022.1.0-beta2 547 1/5/2022
2022.1.0-beta1 560 1/3/2022
2022.1.0-beta0 522 12/30/2021
2022.1.0-alpha0 694 12/30/2021 2022.1.0-alpha0 is deprecated because it is no longer maintained.
2021.12.0 39,332 12/6/2021
2021.12.0-alpha1 1,406 11/29/2021
2021.12.0-alpha0 598 11/18/2021
2021.11.4 25,221 11/14/2021
2021.11.3 5,381 11/7/2021
2021.11.0-beta3 621 11/3/2021
2021.11.0-beta2 645 10/28/2021
2021.11.0-beta 699 10/23/2021
2021.10.1 10,767 9/30/2021
2021.10.0 993 9/30/2021
2021.10.0-beta.2 465 9/14/2021
2021.10.0-beta 619 9/13/2021
2021.9.3 9,176 9/12/2021
2021.9.2 1,076 9/1/2021
2021.9.1 914 9/1/2021
2021.9.0 883 8/30/2021
2021.8.0 2,870 8/2/2021
2021.5.2 4,942 5/5/2021
2021.4.0 1,130 4/2/2021
2021.3.1 7,506 3/1/2021
2021.3.0 955 3/1/2021
2021.2.0 1,081 2/8/2021
2021.1.0 1,089 1/4/2021
2020.11.0 16,762 11/1/2020

Fixes:
- Fixed semantic structure handling in the Dynamic element
- Fixed semantic structure handling in the Lazy element

Improvements:
- Updated package icon
- Updated NuGet package metadata (readme and description)
- Revised welcome message to clarify licensing options and improve guidance
- Updated third-party license attributions (removed ICU, added libgrapheme)