Generate PDF Report using Quest PDF in .NET
Report
3 Articles
In this article, let's learn about how to do Generate PDF Report using QuestPDF in .NET.
Table of Contents
Introduction
Reports are needed in an enterprise to provide insights into key performance indicators, track progress towards goals, do some analysis, and make informed decisions. The most common report formats availabe are in PDF, Word, Power Point, Excel, etc. PDF reports are widely used because they offer a combination of portability, security, consistency, and customization that make them ideal for a variety of business and personal applications.
8 years ago, we used to generate reports using Crystal Reports in .NET for back-office monitoring in applications. Designing reports was tedious and sometimes complex, as it required an understanding of and proficiency in Crystal Reports. While there were other tools available for generating reports, they required Microsoft Office/Interop to be installed on the target servers.
What is Quest PDF ?
QuestPDF QuestPDF is a modern open-source .NET library for PDF generation. Offering comprehensive layout engine powered by concise and discoverable C# Fluent API.
With Quest PDF, you
- 👨💻 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.
I personally liked the instant preview along with rapid prototyping available in this library.
Why Quest PDF ?
Quest PDF is an open-source project and has a large community of developers and users. Its repository is maintained on GitHub and is actively updated by the development team.
As with any open-source software, it is important to thoroughly evaluate the source code and the project's reputation before using it in production. You can assess the trustworthiness of Quest PDF by looking at its code quality, the number of contributors, and the frequency of updates.
Overall, Quest PDF has a positive reputation and is widely used by many developers. It is an active project with regular updates, and the development team is responsive to issues and feature requests. You can review its GitHub repository and the community feedback to determine its trustworthiness.
We can consider using Quest PDF for the following options and benefits,
- Comprehensive layout engine
- - 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.
- Multiplatform
- - We can use our preffered code editor (Visual Studio, VS Code, JetBrains Rider, etc.). Run our 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).
- Discoverable Fluent API
- - The library uses the FluentAPI code style that makes our 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.
- Reusable code
- - 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.
- Efficient maintenance
- - 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.
- Quick prototyping
- - 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.
- High performance
- - This is high performant and consumesn low resource usage. Generate even 1000 PDF files per minute per core, with a thread-safe process.
- Advanced languages support
- - 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).
Generating PDF Report
Let's learn on how to generate beautiful PDF documents easily using QuestPDF.
- Install QuestPDF Nuget Package
If you are using QuestPDF in Blazor WASM Apps, you need to add the following additional Nuget Packages to your startup project's .csproj file. This is required to load the font files in Blazor WASM Apps
- SkiaSharp.HarfBuzz
- HarfBuzzSharp.NativeAssets.WebAssembly
- SkiaSharp.NativeAssets.WebAssembly
- SkiaSharp.Views.Blazor
A NativeFileReference as shown below also needs to be added under ItemGroup in startup project's .csproj file. This is required to load the font files in Blazor WASM Apps.
<NativeFileReference Include="$(HarfBuzzSharpStaticLibraryPath)/3.1.34/st/*.a" />
- Add appropriate License Configuration QuestPDF.Settings.License = LicenseType.Community; to Program.cs
- Keep you Document Model POCO class ready
- Connect to Document data source and load data into your Document Model (POCO Classes)
- Prepare Template using Document Engine and Fluent API and fill it with data
- Generate and save/stream it back to user
Code Sample - Generating PDF Report
More Information
Additional information can be found in the official documentation, accessible via the official documentation. They support various types of layouts and provide samples on their website.
Summary
In this article we learn't how to generate simple pdf report using QuestPDF. QuestPDF is a modern .NET library that enables developers to design and create PDF files. It provides an Fluent API that simplifies the process of creating PDF files, making it easier to develop and maintain, Quest PDF is an open-source project with an active community of developers and users, and is regularly updated. By using Quest PDF, developers can efficiently and effectively generate PDF reports and other solutions.