# questpdf/questpdf

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/questpdf-questpdf).**

14,088 stars · 763 forks · C# · NOASSERTION

## Links

- GitHub: https://github.com/QuestPDF/QuestPDF
- Homepage: https://www.questpdf.com
- awesome-repositories: https://awesome-repositories.com/repository/questpdf-questpdf.md

## Topics

`c-sharp` `dotnet-core` `export` `generation` `html` `invoice` `library` `nuget` `pdf` `report`

## Description

QuestPDF is a C# PDF generation library and layout engine used to create structured documents, reports, and invoices. It utilizes a fluent API and a component-based layout approach to convert code into high-fidelity PDF and XPS files.

The library distinguishes itself with a dedicated layout debugger that provides real-time previews, hot-reload capabilities, and visual boundary tools to map rendered elements back to source code. It also functions as an accessibility tool, providing semantic tagging and navigational aids to ensure documents comply with international accessibility and archival standards.

Broad capabilities include comprehensive content and layout primitives for tables, vector graphics, and rich text, as well as document manipulation utilities for merging files, extracting pages, and managing encryption. The system also supports electronic invoice generation by combining human-readable layouts with machine-readable XML data.

The library provides a type-safe API for producing files within web service endpoints.

## Tags

### Content Management & Publishing

- [PDF Document Generation](https://awesome-repositories.com/f/content-management-publishing/pdf-document-generation.md) — Creates high-fidelity PDF documents, reports, and invoices using a type-safe C# fluent API.
- [Accessible PDF Generation](https://awesome-repositories.com/f/content-management-publishing/accessible-pdf-generation.md) — Generates PDF documents with structural semantic tags and navigational aids for screen reader compatibility.
- [Document Sectioning](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/document-models/document-sectioning.md) — Marks document fragments to create a logical hierarchy for navigation and table of contents generation. ([source](https://www.questpdf.com/api-reference/section.html))
- [Accessibility Tagging](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/document-models/document-sectioning/document-content-structuring/accessibility-tagging.md) — Allows tagging layout elements as headings or lists to create a logical structure for screen readers and content extraction. ([source](https://www.questpdf.com/concepts/accessibility.html))
- [PDF Generation Libraries](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/pdf-generation-libraries.md) — Provides a framework for creating professional PDF documents using a component-based layout approach in C#.
- [Alternative Measurement Units](https://awesome-repositories.com/f/content-management-publishing/measurement-unit-conversion/alternative-measurement-units.md) — Supports defining element dimensions using various precise measurement units such as points and inches. ([source](https://www.questpdf.com/concepts/length-unit-types.html))
- [Page Layout Adjustments](https://awesome-repositories.com/f/content-management-publishing/page-layout-adjustments.md) — Allows assigning distinct sizes, orientations, and styles to different page sets within a single document. ([source](https://www.questpdf.com/api-reference/page/settings.html))
- [PDF Layout Engines](https://awesome-repositories.com/f/content-management-publishing/programmatic-pdf-layout-tools/pdf-layout-engines.md) — Functions as a complete rendering system converting C# code into professional PDF and XPS documents.
- [Semantic Document Structuring](https://awesome-repositories.com/f/content-management-publishing/semantic-document-structuring.md) — Maintains a logical hierarchy of tagged elements to generate accessible PDF structures and document outlines.
- [Alternative Text Descriptions](https://awesome-repositories.com/f/content-management-publishing/alternative-text-descriptions.md) — QuestPDF identifies images and formulas with alternative text to describe visual content to users who cannot see them. ([source](https://www.questpdf.com/concepts/accessibility.html))
- [Raster Image Exports](https://awesome-repositories.com/f/content-management-publishing/content-formats-exporting/export-formats/raster-image-exports.md) — Rasterizes PDF pages into image files with configurable resolution and compression settings. ([source](https://www.questpdf.com/concepts/generating-output.html))
- [Content Scaling](https://awesome-repositories.com/f/content-management-publishing/content-scaling.md) — Adjusts the size of inner elements along axes to expand, shrink, or scale content within the document. ([source](https://www.questpdf.com/api-reference/scale.html))
- [Document Styling Systems](https://awesome-repositories.com/f/content-management-publishing/document-styling-systems.md) — Enables the definition of reusable styling and content patterns in a central location for visual consistency. ([source](https://www.questpdf.com/concepts/code-patterns/extension-methods.html))
- [Document Watermarking](https://awesome-repositories.com/f/content-management-publishing/document-watermarking.md) — Supports visual layering of background content and watermarks on top of the main document body. ([source](https://www.questpdf.com/api-reference/layers.html))
- [Dynamic List Generators](https://awesome-repositories.com/f/content-management-publishing/dynamic-list-generators.md) — Provides programmatically generated formatted lists with support for nesting and document page-break logic. ([source](https://www.questpdf.com/api-reference/lists.html))
- [Page-Aware Data Aggregations](https://awesome-repositories.com/f/content-management-publishing/page-aware-data-aggregations.md) — Tracks data state across page breaks to display aggregated totals for items on each individual page. ([source](https://www.questpdf.com/concepts/code-patterns/dynamic-components.html))
- [Page Break Management](https://awesome-repositories.com/f/content-management-publishing/page-break-management.md) — Forces related data elements to remain on a single page to prevent logical splitting. ([source](https://www.questpdf.com/api-reference/show-entire.html))
- [Automatic Page Numbering](https://awesome-repositories.com/f/content-management-publishing/page-counting/automatic-page-numbering.md) — Implements automated counters for displaying current and total page numbers across documents. ([source](https://www.questpdf.com/invoice-tutorial.html))
- [Page Break Insertions](https://awesome-repositories.com/f/content-management-publishing/page-insertion/page-break-insertions.md) — Inserts markers to force content to start on a new page during PDF generation. ([source](https://www.questpdf.com/api-reference/page-break.html))
- [Pagination Control](https://awesome-repositories.com/f/content-management-publishing/pagination-control.md) — Prevents content blocks from being split across pages by ensuring a minimum height on the first page. ([source](https://www.questpdf.com/api-reference/ensure-space.html))
- [PDF Document Management](https://awesome-repositories.com/f/content-management-publishing/pdf-document-management.md) — Provides a comprehensive toolkit for merging files, extracting pages, and managing PDF metadata.
- [XPS Document Generation](https://awesome-repositories.com/f/content-management-publishing/xps-document-generation.md) — Produces fixed-layout XML Paper Specification files on Windows systems. ([source](https://www.questpdf.com/concepts/generating-output.html))

### Part of an Awesome List

- [Layout Visual Debuggers](https://awesome-repositories.com/f/awesome-lists/media/pdf/layout-visual-debuggers.md) — Provides a real-time diagnostic tool for visualizing layout boundaries and mapping them to source code.

### Business & Productivity Software

- [Table Construction](https://awesome-repositories.com/f/business-productivity-software/table-construction.md) — Implements programmatic creation of grids with configurable column sizes and complex cell spanning. ([source](https://www.questpdf.com/invoice-tutorial.html))
- [Electronic Invoice Formats](https://awesome-repositories.com/f/business-productivity-software/invoice-generation/timesheet-based-invoices/electronic-invoice-formats.md) — Generates invoices using standardized electronic formats like ZUGFeRD and XRechnung for automated processing. ([source](https://www.questpdf.com/examples/zugferd.html))

### Graphics & Multimedia

- [Document Layout Debugging](https://awesome-repositories.com/f/graphics-multimedia/layout-visualization-tools/document-layout-debugging.md) — Offers real-time previews and visual boundary tools to diagnose layout and spacing issues.
- [PDF Image Embedding](https://awesome-repositories.com/f/graphics-multimedia/pdf-image-embedding.md) — Supports inserting raster images into PDF layouts while maintaining original aspect ratios. ([source](https://www.questpdf.com/api-reference/image/basics.html))
- [Deferred Element Rendering](https://awesome-repositories.com/f/graphics-multimedia/deferred-rendering-engines/deferred-element-rendering.md) — Delays the instantiation of document elements until the final rendering phase to minimize memory consumption.
- [Shape Drawing](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/shape-drawing.md) — Enables the programmatic creation of geometric shapes, gradients, and dotted lines for layout structuring. ([source](https://www.questpdf.com/api-reference/complex-graphics.html))
- [Vector Graphics Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/vector-rendering-pipelines/vector-graphics-renderers.md) — Provides a rendering system that supports scalable vector graphics with on-demand loading and preloading. ([source](https://www.questpdf.com/api-reference/image/svg.html))
- [Layout Visualization Tools](https://awesome-repositories.com/f/graphics-multimedia/layout-visualization-tools.md) — Provides visual representation of document layout using labeled, colored boxes to diagnose spacing and alignment. ([source](https://www.questpdf.com/api-reference/debug-area.html))
- [Deferred Rendering](https://awesome-repositories.com/f/graphics-multimedia/spatial-hierarchy-accelerators/raytracing-acceleration-structures/memory-reduction-techniques/deferred-rendering.md) — Implements deferred rendering to minimize memory consumption during the document creation process. ([source](https://www.questpdf.com/api-reference/lazy.html))
- [Vector Graphics Export](https://awesome-repositories.com/f/graphics-multimedia/vector-graphics-export.md) — Converts document pages into scalable vector graphics formats for high-quality web rendering. ([source](https://www.questpdf.com/concepts/generating-output.html))
- [Compression & Resolution Tuning](https://awesome-repositories.com/f/graphics-multimedia/visual-quality-optimizations/compression-resolution-tuning.md) — Balances file size and visual fidelity by adjusting compression levels and resolution DPI. ([source](https://www.questpdf.com/api-reference/image/optimization.html))

### Programming Languages & Runtimes

- [Fluent Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/fluent-interfaces.md) — Uses a fluent API with method chaining to define document structures and visual hierarchies declaratively. ([source](https://www.questpdf.com/concepts/code-patterns/execution-order.html))

### User Interface & Experience

- [Vertical Column Layouts](https://awesome-repositories.com/f/user-interface-experience/column-layout-configurations/vertical-column-layouts.md) — Arranges content into multiple vertical columns with configurable spacing and height balancing. ([source](https://www.questpdf.com/api-reference/multi-column.html))
- [Content Alignment](https://awesome-repositories.com/f/user-interface-experience/expanding-content-cells/auto-layout-cells/content-alignment.md) — Provides settings for positioning child elements horizontally and vertically within their parent containers. ([source](https://www.questpdf.com/api-reference/alignment.html))
- [Flexible Element Expansion](https://awesome-repositories.com/f/user-interface-experience/flexible-element-expansion.md) — Stretches content elements to occupy the maximum available width or height to fill specific areas. ([source](https://www.questpdf.com/api-reference/extend.html))
- [Horizontal Arrangements](https://awesome-repositories.com/f/user-interface-experience/horizontal-arrangements.md) — Implements layout containers that arrange elements side-by-side with automatic wrapping to new lines. ([source](https://www.questpdf.com/api-reference/inlined.html))
- [Horizontal Layouts](https://awesome-repositories.com/f/user-interface-experience/horizontal-layouts.md) — Provides row-based containers for side-by-side alignment of elements with support for multi-page flow. ([source](https://www.questpdf.com/api-reference/row.html))
- [Adaptive Layout Rendering](https://awesome-repositories.com/f/user-interface-experience/adaptive-layout-rendering.md) — Generates content that adapts its rendering based on the current page number or available space. ([source](https://www.questpdf.com/concepts/code-patterns/dynamic-components.html))
- [Conditional Rendering](https://awesome-repositories.com/f/user-interface-experience/conditional-rendering.md) — Allows elements or entire sections to be rendered only when specific runtime boolean conditions are met. ([source](https://www.questpdf.com/api-reference/show-if.html))
- [Aspect Ratio Constraints](https://awesome-repositories.com/f/user-interface-experience/constraint-layout-engines/aspect-ratio-constraints.md) — Enforces specific width-to-height proportions on elements to ensure content scales proportionally. ([source](https://www.questpdf.com/api-reference/aspect-ratio.html))
- [Repeating Page Decorations](https://awesome-repositories.com/f/user-interface-experience/content-dividers/content-sectioning/repeating-page-decorations.md) — Renders specific decorative elements that repeat above and below content blocks on every page. ([source](https://www.questpdf.com/api-reference/decoration.html))
- [Section Jump Links](https://awesome-repositories.com/f/user-interface-experience/content-dividers/content-sectioning/section-jump-links.md) — Creates clickable internal links that jump the reader to specific sections within the PDF. ([source](https://www.questpdf.com/api-reference/section.html))
- [Repeating Header Logic](https://awesome-repositories.com/f/user-interface-experience/data-display-components/data-table-customizations/table-header-customizers/repeating-header-logic.md) — Renders specific rows at the top and bottom of a table on every page. ([source](https://www.questpdf.com/api-reference/table/header-and-footer.html))
- [Element Positioning](https://awesome-repositories.com/f/user-interface-experience/element-positioning.md) — Supports placing content at precise coordinates regardless of parent constraints for overlapping or absolute layouts. ([source](https://www.questpdf.com/api-reference/unconstrained.html))
- [Custom Font Loading](https://awesome-repositories.com/f/user-interface-experience/font-management/dynamic-font-loading/custom-font-loading.md) — Loads system fonts and registers custom font files to ensure consistent typography across environments. ([source](https://www.questpdf.com/api-reference/text/font-management.html))
- [Right-To-Left Support](https://awesome-repositories.com/f/user-interface-experience/frontend-ui-toolkits/right-to-left-support.md) — Supports both left-to-right and right-to-left reading directions for multi-language document layouts. ([source](https://www.questpdf.com/api-reference/page/settings.html))
- [Hot-Reloading Previews](https://awesome-repositories.com/f/user-interface-experience/graphical-user-interfaces/ai-specific-ux-design/artifact-renderers/hot-reloading-previews.md) — Provides a real-time preview loop that updates the document layout instantly as source code changes.
- [Semantic Element Hiding](https://awesome-repositories.com/f/user-interface-experience/interface-element-hiding/semantic-element-hiding.md) — Removes visual-only elements from the semantic tree to prevent screen readers from announcing non-essential content. ([source](https://www.questpdf.com/concepts/accessibility.html))
- [Absolute Positioning](https://awesome-repositories.com/f/user-interface-experience/layout-positioning/absolute-positioning.md) — Shifts elements relative to their original position without affecting the overall layout flow. ([source](https://www.questpdf.com/api-reference/offset.html))
- [Spacing Management](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/space-layout-hooks/spacing-management.md) — Provides precise control over the empty space and gaps around elements to separate content. ([source](https://www.questpdf.com/api-reference/padding.html))
- [Inline Text-Flow Media](https://awesome-repositories.com/f/user-interface-experience/media-display-components/inline-media-displays/inline-text-flow-media.md) — Inserts images or icons directly into text flows as inline elements for mixed-content layouts. ([source](https://www.questpdf.com/api-reference/text/injecting-custom-content.html))
- [Navigation Aids](https://awesome-repositories.com/f/user-interface-experience/navigation-aids.md) — Identifies tables of contents and indices to help assistive technologies navigate complex document structures. ([source](https://www.questpdf.com/concepts/accessibility.html))
- [Reusable UI Components](https://awesome-repositories.com/f/user-interface-experience/reusable-ui-components.md) — Provides the ability to encapsulate layout logic and styling into standalone, reusable UI component classes. ([source](https://www.questpdf.com/invoice-tutorial.html))
- [Rich Text Styling](https://awesome-repositories.com/f/user-interface-experience/rich-text-styling.md) — Provides capabilities for applying inline and block-level rich text styling such as bold, italic, and headings. ([source](https://www.questpdf.com/api-reference/text/basics.html))
- [Table Accessibility Associations](https://awesome-repositories.com/f/user-interface-experience/table-accessibility-associations.md) — Provides logical links between data cells and header cells to ensure screen readers can correctly associate tabular data with its labels. ([source](https://www.questpdf.com/concepts/accessibility.html))
- [Text Alignment](https://awesome-repositories.com/f/user-interface-experience/text-alignment.md) — Provides comprehensive options for positioning text horizontally within layout containers. ([source](https://www.questpdf.com/api-reference/text/paragraph-style.html))
- [Text Styling](https://awesome-repositories.com/f/user-interface-experience/text-styling.md) — Defines consistent fonts, sizes, and colors across all text elements on a page for visual uniformity. ([source](https://www.questpdf.com/api-reference/text/paragraph-style.html))
- [Hierarchical Styling](https://awesome-repositories.com/f/user-interface-experience/text-styling/hierarchical-styling.md) — Defines base text styles that apply to all child elements automatically while allowing local overrides. ([source](https://www.questpdf.com/api-reference/text/style-inheritance.html))
- [Text Truncation Strategies](https://awesome-repositories.com/f/user-interface-experience/text-truncation-strategies.md) — Limits visible lines in a paragraph and adds an ellipsis to indicate overflow content. ([source](https://www.questpdf.com/api-reference/text/paragraph-style.html))
- [Typography Spacing Controls](https://awesome-repositories.com/f/user-interface-experience/typography-spacing-controls.md) — Controls the vertical spacing between text blocks to improve readability and separation. ([source](https://www.questpdf.com/api-reference/text/paragraph-style.html))
- [Custom Color Palette Definitions](https://awesome-repositories.com/f/user-interface-experience/ui-architecture/design-utilities/design-systems/color-system-utilities/color-palette-management/custom-color-palette-definitions.md) — Allows the assignment of colors to elements using a custom palette or supported color formats. ([source](https://www.questpdf.com/concepts/colors.html))
- [Constraint Conflict Debugging](https://awesome-repositories.com/f/user-interface-experience/ui-layout-auditing/constraint-conflict-debugging.md) — Provides tools to identify and resolve conflicting layout constraints through detailed error messages and measurement data. ([source](https://www.questpdf.com/concepts/global-settings.html))
- [Element Dimension Tracking](https://awesome-repositories.com/f/user-interface-experience/viewport-dimension-tracking/element-dimension-tracking.md) — Calculates the vertical and horizontal size of visual elements and the distance between them. ([source](https://www.questpdf.com/companion/features.html))
- [Visual Layering Systems](https://awesome-repositories.com/f/user-interface-experience/visual-layering-systems.md) — Manages visual depth by rendering background and foreground layers independently of the main content flow.

### Web Development

- [Fluent Builder APIs](https://awesome-repositories.com/f/web-development/api-bridges/browser-api-wrappers/fluent-api-wrappers/fluent-builder-apis.md) — Uses a fluent builder API with method chaining to define document structures and visual hierarchies declaratively.
- [Layout Engines](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/rendering-and-layout-architectures/component-based-page-layouts/layout-engines.md) — Implements a component-based layout engine that encapsulates styling and positioning logic into reusable classes.
- [Page Layout Configurations](https://awesome-repositories.com/f/web-development/layout-engines/page-layout-configurations.md) — Configures page backgrounds, dimensions, and margins using presets or exact measurements. ([source](https://www.questpdf.com/api-reference/page/settings.html))
- [Recursive Constraint Calculations](https://awesome-repositories.com/f/web-development/sizing-unit-systems/relative-layout-dimensions/element-sizing/recursive-constraint-calculations.md) — Calculates element dimensions by propagating size constraints down a tree and bubbling measurements back up.
- [Document Language Specifications](https://awesome-repositories.com/f/web-development/document-language-specifications.md) — Assigns natural language attributes to containers so assistive technologies apply the correct pronunciation rules for the text. ([source](https://www.questpdf.com/concepts/accessibility.html))
- [Document Rendering Diagnostics](https://awesome-repositories.com/f/web-development/flexbox-layout-patterns/rendering-debugging/document-rendering-diagnostics.md) — Identifies root causes of rendering failures using color-coded annotations and detailed reports. ([source](https://www.questpdf.com/companion/features.html))
- [Document](https://awesome-repositories.com/f/web-development/server-side-rendering/svg-renderers/document.md) — Renders custom shapes, gradients, and complex visual elements by embedding SVG content dynamically. ([source](https://www.questpdf.com/api-reference/complex-graphics.html))

### Development Tools & Productivity

- [Document Structure Navigators](https://awesome-repositories.com/f/development-tools-productivity/documentation-navigation/document-structure-navigators.md) — Provides a hierarchical tree view of elements to enable rapid navigation and selection during design. ([source](https://www.questpdf.com/companion/features.html))
- [Outline Management](https://awesome-repositories.com/f/development-tools-productivity/documentation-navigation/document-structure-navigators/outline-management.md) — Automatically creates a navigable table of contents and document outline based on semantic headers. ([source](https://www.questpdf.com/concepts/accessibility.html))
- [Document Previewers](https://awesome-repositories.com/f/development-tools-productivity/documentation-previewers/document-previewers.md) — Renders generated documents in real-time with automatic refreshing as the source code changes. ([source](https://www.questpdf.com/companion/warnings.html))
- [UI-to-Code Mapping Tools](https://awesome-repositories.com/f/development-tools-productivity/ui-to-code-mapping-tools.md) — Bridges rendered visual areas of a document directly to the corresponding C# source code implementation. ([source](https://www.questpdf.com/companion/features.html))

### Security & Cryptography

- [Archival Standard Compliance](https://awesome-repositories.com/f/security-cryptography/compliance-standards/archival-standard-compliance.md) — Produces files that adhere to international standards for archival, accessibility, and electronic invoicing. ([source](https://cdn.jsdelivr.net/gh/questpdf/questpdf@main/README.md))

### Software Engineering & Architecture

- [Multi-Phase Layout Calculation](https://awesome-repositories.com/f/software-engineering-architecture/multi-phase-layout-calculation.md) — Determines element positions and page breaks through a multi-phase measurement and placement process.
