SkillAgentSearch skills...

QuestPDF

QuestPDF is a modern library for PDF document generation. Its fluent C# API lets you design complex layouts with clean, readable code. Create documents using a flexible, component-based approach.

Install / Use

npx skills add QuestPDF/QuestPDF

Installs into whichever agent you are using.

About this skill

Quality Score

0/100

Category

Design

Supported Platforms

Universal

README

<picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/9535de26-aeac-42ac-ac45-019a2893ed6b"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/e9d197ee-0cad-44f0-9efa-80ad68c31abe"> <img src="https://github.com/user-attachments/assets/e9d197ee-0cad-44f0-9efa-80ad68c31abe" width="300"> </picture> <br> <br>

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.

The library is free for individuals, non-profits, open-source projects, and organizations under $1M in annual gross revenue. Read more

<br>

GitHub Stars and Stargazers <br> Nuget package download <br> QuestPDF License

<br> <hr>

Home Page   •   Quick Start   •   Invoice Tutorial   •   Features Overview   •   Pricing   •   License   •   NuGet

<hr> <br>

🚀 Quick start

Learn how easy it is to design, implement and generate PDF documents using QuestPDF. <br> 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.Evaluation;

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");
<br>

The code above produces the following PDF document:

<img width="300" alt="image" src="https://github.com/user-attachments/assets/46784e17-e8be-41d2-87f4-d6322c3b5e52" /> <br> <br> <br>

Please help by giving a star ⭐

GitHub stars guide developers toward great tools. If you find this project valuable, please give it a star – it helps the community and takes just a second!

<img src="https://github.com/user-attachments/assets/96a1d6ee-5df8-48e3-9507-a3649f339b4a" width="700" /> <br> <br>

Installation

QuestPDF is available as a NuGet package. You can install it through your IDE by searching for phrase QuestPDF. If you are not familiar how to do that, please refer to the following guides:

Or use the following command in your terminal:

dotnet add package QuestPDF
<br> <br>

Everything you need to generate PDFs

QuestPDF provides 60+ production-ready features for building complex, data-driven PDF documents with clean and maintainable C# code.

<br>

🧱 Layout:<br> Page setup, headers, footers, watermarks, tables, rows, columns, lists, layers, inlined content, multi-column flow, sections, decorations

<br>

🎨 Visual Content:<br> Rich text, fonts, colors, backgrounds, borders, rounded corners, shadows, lines, raster images, SVG, placeholders, canvas graphics

<br>

📐 Positioning:<br> Alignment, width, height, padding, aspect ratio, rotation, scaling, scale-to-fit, offset, flip, extend, shrink, unconstrained layout, Z-index

<br>

🌊 Content Flow:<br> Page breaks, prevent page breaks, ensure space, show entire, repeat, show once, skip once, conditional rendering, stop paging

<br>

🧩 Dynamic Documents:<br> Loops, conditions, reusable components, dynamic components, lazy loading, custom helpers, extension methods, strongly-typed models

<br>

🌍 Internationalization:<br> RTL layout direction, bidirectional text, advanced text shaping, font fallback, multilingual documents, accessibility support

<br>

Explore All QuestPDF Features

<br> <br>

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");
        });
}
<br> <br>

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
<picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/d2cbade8-4252-4fc7-ac0d-d408a6373bdf"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/9e2ae731-d710-4776-9fa8-508ac8b0a6a9"> <img src="https://github.com/user-attachments/assets/ce394258-1f10-498d-b65f-26c9fbed2994" width="600"> </picture> <br>

Learn about QuestPDF Companion App Learn about QuestPDF Companion App

<br> <br>

Enterprise-grade foundations

🧩 Dynamic Content Is Just Code<br> Use your existing programming language and development patterns to ship faster with less training. Loops, conditionals, functions, reusable components, and data-driven generation are supported natively.

<br>

🔀 Version Control Friendly<br> Review document changes like any other code. Get clean diffs, pull request approvals, traceable history, and safer collaboration across your team.

<br>

✨ Ready for AI<br> QuestPDF’s semantic Fluent API helps AI assistants generate layouts, refactor components, explain document structure, and troubleshoot issues more effectively.

<br>

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

<br>

👁️ Source-available<br> Entire QuestPDF source code is available for review and customization, ensuring transparency and compliance with your organization's requirements.

<br>

🔒 Complete Data Privacy<br> 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.

<br>

🏗️ Comprehensive Layout Engine<br> A powerful layout engine built specifically for PDF generation. Gain full control over document structure, precise content positioning, and automatic pagination.

<br>

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

<br>

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

<br>

📦 Optimized File Size<br> Drastically reduce file sizes without compromising quality. Benefit from automatic font subsetting, optimal image compression, and efficient file compression.

<br> <br>

Perform common PDF operations

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

  • 🔗 Merge documents

Related Skills

View on GitHub
GitHub Stars14.2k
CategoryDesign
Updated1d ago
Forks765

Languages

C#

Security Score

85/100

Audited on Aug 7, 2026

No findings