Modern .NET library for PDF document generation
QuestPDF is an open-source .NET library for PDF generation. Utilizing several new patterns and practices, QuestPDF seeks to resolve the challenges inherent in this process.
Design documents using C# and employ a code-only approach. Utilize your version control system to its fullest potential.
Compose document content with a range of powerful and predictable structural elements, such as text, image, border, background, table, and more.
Utilize a comprehensive layout engine, specifically designed for document generation and paging support.
Write code using concise and easy-to-understand C# Fluent API. Utilize IntelliSense to quickly discover available options.
Don't be limited to any proprietary scripting language or format. Follow your experience and leverage all of the features that C# has to offer.
Save time thanks to a hot-reload capability, allowing real-time document preview without code recompilation.
QuestPDF has been created with love for developers, by developers. We understand how to design a library that offers enjoyable and rewarding experience. A quick learning curve, concise and easy-to-understand code, and a fast development loop - this is a definition of productivity and satisfaction.
The QuestPDF library provides a stable foundation for PDF generation functionality, regardless of the application type. Its constantly improving quality, high stability, and developer-friendly architecture make it a key for any successful project. Moreover, its open-source nature ensures its reliability and safety.
Utilize a layout engine specifically designed for document generation, with full paging support. It gives you high control over the content, optimizes the document's visual structure, and makes your code more flexible.
Feel free to use your preffered code editor (JetBrains Rider, Visual Studio, VS Code, etc.). Run your software on any operating system (Windows, Linux, macOS), cloud platforms (e.g. Azure, AWS), device types (desktop, tablets, phones) and even web browser (via WebAssembly).
The library uses the FluentAPI code style that makes your code more concise and easier to understand. The IntelliSense mechanism available in all major IDEs helps you writing the code efficiently and discover new features.
Apply established programming patterns and practices to make your code more manageable. For instance, divide your layout implementation into distinct and/or reusable structures using classes and methods, exactly how you do it with other features and functionalities.
Follow the code-only approach to have better understanding of changes and implementation history. Use your preferred version control system to easily manage fixes, adjustments and improvements. Never get lost in proprietary binary formats or complex HTML implementations.
Design and adjust visual content using the QuestPDF Previewer tool. It utilizes a hot-reload capability to preview your document without code re-compilation. Use the inspector tool to better understand the layout and its structure.
Enjoy high performance and low resource usage thanks to highly optimized layout engine and graphical library. Generate even 1000 PDF files per minute per core, with a thread-safe process.
Easily create multilingual documents with advanced text style support, including right-to-left (RTL) languages as well as languages requiring text shaping to display glyphs correctly (e.g. Arabic).
This library is amazing, we recently did a small prototype to test RTL and Arabic support, we were impressed with it. Coming from a background where I have used Microsoft Report Designer, Crystal Reports and Fast Reports, this library is better than them all.
Thanks for your hard work, I really appreciate QuestPDF! One of the most professional, high quality open-source PDFs library I came across so far!
Recently made use of this library over another older library and have to say it was a joy to work with. The previewer tool makes making small changes and designing documents such a nice task when matched up with hot reload.
I have been monitoring this project for a couple of years and finally had the chance to utilize it. Initial thoughts are that it is amazing. Thank you for the incredible amount of work you have put into this!
Begin exploring the QuestPDF library today. You are 250 lines of C# code away from creating a fully functional PDF invoice implementation.
Read the Getting Started tutorial to familiarize yourself with general library architecture, important layout structures as well as to better understand helpful patterns and practices.Get started