Generate and edit PDF documents in your .NET applications using the open-source QuestPDF library and its C# Fluent API. Build invoices, reports and data exports with ease.
www.questpdf.com
Topics
#html #csharp #export #pdf #library #nuget #report #dotnetcore #dotnet #generation #invoice #document #form #generation
|
|
пре 1 недеља | |
|---|---|---|
| .github | пре 1 месец | |
| Source | пре 1 недеља | |
| .gitignore | пре 1 месец | |
| LICENSE.md | пре 2 недеља | |
| README.md | пре 2 недеља |
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.
Home Page • Quick Start • Real-world Invoice Tutorial • Features Overview • License • NuGet
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:
[!TIP] The library is free for individuals, non-profits, all FOSS projects, and organizations under $1M in annual revenue. Read more about licensing here
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
From layout and styling to production features, QuestPDF gives you the flexibility to create documents of any complexity.
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");
});
}
Accelerate development with live document preview and hot-reload capability. See your changes instantly without recompiling.
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.
Leverage a powerful C# Fluent API to create, customize, and manage your PDF documents with ease.
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");
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 |
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):
PDF/A-2b, PDF/A-2u, PDF/A-2a, PDF/A-3b, PDF/A-3u, PDF/A-3aPDF/UA (Accessibility):
PDF/UA-1EN 16931 (E-Invoicing):
ZUGFeRD, Factur-X
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.
[!TIP] Free for individuals, non-profits, all FOSS projects, and organizations under $1M in annual revenue.
Follow our detailed tutorial and see how easy it is to generate a fully functional invoice with fewer than 250 lines of C# code.
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!
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!