Agent Skills: QuestPDF Report Generation

QuestPDF report generation with fluent C# API. Use when generating PDF documents, designing report layouts, creating invoices/data tables, implementing page structures with headers/footers, or building reusable document components.

UncategorizedID: keithdv/ClaudeSkills/questpdf

Skill Files

Browse the full folder contents for questpdf.

Download Skill

Loading file tree…

skills/questpdf/SKILL.md

Skill Metadata

Name
questpdf
Description
QuestPDF report generation with fluent C# API. Use when generating PDF documents, designing report layouts, creating invoices/data tables, implementing page structures with headers/footers, or building reusable document components.

QuestPDF Report Generation

Overview

QuestPDF is a modern C# library for PDF document generation with a dedicated layout engine optimized for PDF creation. It uses a component-based, fluent API architecture where simple elements are composed into sophisticated documents.

Key Benefits

| Feature | Description | |---------|-------------| | Native C# API | No HTML-to-PDF conversion - direct PDF generation | | Component-Based | Reusable IComponent pattern for modular documents | | Automatic Pagination | Content flows naturally across pages | | Type-Safe | Compile-time checked document structure | | Fluent API | Intuitive chaining syntax for layout definition |

Installation

dotnet add package QuestPDF

License: Free for individuals, non-profits, and businesses < $1M annual revenue.

Quick Start

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

Document.Create(container =>
{
    container.Page(page =>
    {
        page.Size(PageSizes.A4);
        page.Margin(50);

        page.Header().Text("My Report").FontSize(24).Bold();

        page.Content().Column(column =>
        {
            column.Spacing(10);
            column.Item().Text("Hello, QuestPDF!");
            column.Item().Text($"Generated: {DateTime.Now:g}");
        });

        page.Footer().AlignCenter().Text(text =>
        {
            text.Span("Page ");
            text.CurrentPageNumber();
            text.Span(" of ");
            text.TotalPages();
        });
    });
}).GeneratePdf("report.pdf");

Common Pitfalls

| Pitfall | Solution | |---------|----------| | Constraint conflicts | Ensure parent containers provide sufficient space for width/height constraints | | Header/Footer height | Combined header + footer must leave space for content | | Image loading | Load images once and reuse for performance | | Text overflow | Use .ClampLines() or ensure adequate width | | DateTime metadata | Use DateTimeOffset.Now instead of DateTime.Now |

Additional Resources

For detailed guidance, see:

API Reference

For complete API documentation, see: https://www.questpdf.com/api-reference/