diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 6ecef61..ea32b74 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -4,6 +4,26 @@ import imageSizePlugin from "./markdownit-imagesize-plugin"; const isProd = process.env.NODE_ENV === 'production'; +const llmsTxtHeader = `# QuestPDF + +> C# library for generating PDF documents with a fluent, code-first API. +> Layout engine with automatic paging: tables, headers and footers, page numbers, images, SVG, barcodes. + +## About + +- Install: \`dotnet add package QuestPDF\`. Select a license at application startup: \`QuestPDF.Settings.License = LicenseType.Community;\` +- License: free for individuals, non-profits, all FOSS projects, and organizations under $1M in annual revenue; otherwise Professional or Enterprise. + Details: [Pricing](https://www.questpdf.com/pricing.html), [License Selection Guide](https://www.questpdf.com/license/guide.html), [Community License](https://www.questpdf.com/license/community.html), [Professional / Enterprise License](https://www.questpdf.com/license/professional-enterprise.html). + Binding terms: [LICENSE.md](https://github.com/QuestPDF/QuestPDF/blob/main/LICENSE.md) +- What QuestPDF can do: [Features Overview](https://www.questpdf.com/features-overview.html) +- Policies: [Security](https://www.questpdf.com/security-policy.html), [Privacy](https://www.questpdf.com/privacy-policy.html), [Terms of Service](https://www.questpdf.com/terms-of-service.html) +- Start here: [Quick start](/quick-start.md), then [In-Depth Invoice Tutorial](/invoice-tutorial.md) +- Everything in one file: [llms-full.txt](/llms-full.txt) + +## Table of Contents + +{toc}`; + function getPlausibleScript() : HeadConfig[] { if (!isProd) return []; @@ -23,7 +43,16 @@ export default defineConfig({ cleanUrls: false, vite: { - plugins: [llmstxt()] + plugins: [llmstxt({ + customLLMsTxtTemplate: llmsTxtHeader, + ignoreFilesPerOutput: { + llmsTxt: [ + 'api-reference/tip-*.md', + 'license.md', 'license/community.md', 'license/guide.md', 'license/professional-enterprise.md', 'license/purchase-success.md', + 'pricing.md', 'features-overview.md', 'contact.md', 'privacy-policy.md', 'security-policy.md', 'terms-of-service.md', + ], + }, + })] }, head: [ diff --git a/docs/acknowledgements.md b/docs/acknowledgements.md index ebb3274..96597dc 100644 --- a/docs/acknowledgements.md +++ b/docs/acknowledgements.md @@ -1,3 +1,7 @@ +--- +description: "Third-party libraries QuestPDF builds on and their licenses." +--- + # Acknowledgements ::: details Six Labors diff --git a/docs/api-reference/alignment.md b/docs/api-reference/alignment.md index 4c9b74e..84a1be0 100644 --- a/docs/api-reference/alignment.md +++ b/docs/api-reference/alignment.md @@ -1,5 +1,6 @@ --- outline: false +description: "Position content in the available space: `AlignLeft`, `AlignCenter`, `AlignRight` and `AlignTop`, `AlignMiddle`, `AlignBottom`." --- diff --git a/docs/api-reference/aspect-ratio.md b/docs/api-reference/aspect-ratio.md index 0bc719c..2a1be84 100644 --- a/docs/api-reference/aspect-ratio.md +++ b/docs/api-reference/aspect-ratio.md @@ -1,5 +1,6 @@ --- outline: false +description: "`AspectRatio`: keep a width-to-height ratio, fitting the available width by default (or height, or area)." --- diff --git a/docs/api-reference/background.md b/docs/api-reference/background.md index 7a877da..106b8c0 100644 --- a/docs/api-reference/background.md +++ b/docs/api-reference/background.md @@ -1,5 +1,6 @@ --- outline: false +description: "Solid color or linear gradient behind content (`Background`, `BackgroundLinearGradient`); combines with rounded corners." --- # Background diff --git a/docs/api-reference/barcodes.md b/docs/api-reference/barcodes.md index dd0f839..855c3ca 100644 --- a/docs/api-reference/barcodes.md +++ b/docs/api-reference/barcodes.md @@ -1,3 +1,7 @@ +--- +description: "Barcodes and QR codes are not built in: generate them with a barcode library and embed the result as SVG via `Svg(size => ...)`; examples use ZXing.Net." +--- + # Barcodes QuestPDF provides robust support for generating various types of barcodes in your PDF documents through integration with the ZXing.Net library. diff --git a/docs/api-reference/border.md b/docs/api-reference/border.md index bc5fc1b..be5fb8d 100644 --- a/docs/api-reference/border.md +++ b/docs/api-reference/border.md @@ -1,3 +1,7 @@ +--- +description: "Borders on all or selected sides: thickness, color, gradient, alignment (inside, middle, outside); combines with rounded corners." +--- + # Border You can use borders to create visual separation between elements in your document. diff --git a/docs/api-reference/charts.md b/docs/api-reference/charts.md index 86d32a8..9a3e37a 100644 --- a/docs/api-reference/charts.md +++ b/docs/api-reference/charts.md @@ -1,3 +1,7 @@ +--- +description: "Charts are not built in: draw them with a charting library and embed the result as SVG via `Svg(size => ...)`; examples use ScottPlot (pie and bar)." +--- + # Charts QuestPDF integrates seamlessly with the ScottPlot library to provide powerful charting capabilities in your PDF documents. diff --git a/docs/api-reference/column.md b/docs/api-reference/column.md index 121acb8..a680743 100644 --- a/docs/api-reference/column.md +++ b/docs/api-reference/column.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Column`: stack items vertically with optional `Spacing`; items flow onto the next page when needed." --- diff --git a/docs/api-reference/complex-graphics.md b/docs/api-reference/complex-graphics.md index bee2943..1bc3158 100644 --- a/docs/api-reference/complex-graphics.md +++ b/docs/api-reference/complex-graphics.md @@ -1,3 +1,7 @@ +--- +description: "Custom shapes beyond built-in elements (rounded gradient rectangle, dotted line) drawn as SVG sized to the available space." +--- + # Complex Graphics QuestPDF supports various built-in drawing capabilities, but there may be times when you need to include more sophisticated or custom graphics in your PDF. diff --git a/docs/api-reference/content-direction.md b/docs/api-reference/content-direction.md index fd03883..a854e7b 100644 --- a/docs/api-reference/content-direction.md +++ b/docs/api-reference/content-direction.md @@ -1,5 +1,6 @@ --- outline: false +description: "`ContentFromLeftToRight` (default) and `ContentFromRightToLeft` for RTL languages; affects text alignment, wrapping, and the order of items in rows and tables." --- diff --git a/docs/api-reference/debug-area.md b/docs/api-reference/debug-area.md index f6dd469..cba7582 100644 --- a/docs/api-reference/debug-area.md +++ b/docs/api-reference/debug-area.md @@ -1,5 +1,6 @@ --- outline: false +description: "`DebugArea(label, color)` draws a labeled box around content to inspect spacing and alignment during development." --- diff --git a/docs/api-reference/debug-pointer.md b/docs/api-reference/debug-pointer.md index d261448..dfa359b 100644 --- a/docs/api-reference/debug-pointer.md +++ b/docs/api-reference/debug-pointer.md @@ -1,5 +1,6 @@ --- outline: false +description: "`DebugPointer(label)` adds a named marker visible only in the Companion App hierarchy and in layout exception traces, not in the PDF." --- diff --git a/docs/api-reference/decoration.md b/docs/api-reference/decoration.md index a86f660..c23fb20 100644 --- a/docs/api-reference/decoration.md +++ b/docs/api-reference/decoration.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Decoration`: content with a `Before` and `After` section that repeat on every page the content spans, e.g. a table caption on each page." --- diff --git a/docs/api-reference/default-text-style.md b/docs/api-reference/default-text-style.md index 1b3ee91..2d9a56d 100644 --- a/docs/api-reference/default-text-style.md +++ b/docs/api-reference/default-text-style.md @@ -1,5 +1,6 @@ --- outline: false +description: "`DefaultTextStyle` applies a text style to all nested text; it extends existing styles, and later calls can override it." --- diff --git a/docs/api-reference/ensure-space.md b/docs/api-reference/ensure-space.md index 4031d33..520179e 100644 --- a/docs/api-reference/ensure-space.md +++ b/docs/api-reference/ensure-space.md @@ -1,5 +1,6 @@ --- outline: false +description: "`EnsureSpace(minHeight)` (default 150 points): move content to the next page unless at least that much fits on the current one; applies only to its first page. Wrap a heading together with the start of what follows to keep them together." --- diff --git a/docs/api-reference/extend.md b/docs/api-reference/extend.md index 054bb7c..fb0b71c 100644 --- a/docs/api-reference/extend.md +++ b/docs/api-reference/extend.md @@ -1,3 +1,7 @@ +--- +description: "`Extend`, `ExtendVertical`, `ExtendHorizontal`: make content fill all available space." +--- + # Extend | Method | Description | diff --git a/docs/api-reference/flip.md b/docs/api-reference/flip.md index e5f247e..1e1b6df 100644 --- a/docs/api-reference/flip.md +++ b/docs/api-reference/flip.md @@ -1,5 +1,6 @@ --- outline: false +description: "`FlipHorizontal`, `FlipVertical`, `FlipOver`: mirror content along one or both axes." --- diff --git a/docs/api-reference/height.md b/docs/api-reference/height.md index 3d54dc8..2590a99 100644 --- a/docs/api-reference/height.md +++ b/docs/api-reference/height.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Height`, `MinHeight`, `MaxHeight`: constrain the vertical size of content; impossible constraints (e.g. taller than the available space) throw a layout exception." --- diff --git a/docs/api-reference/hyperlink.md b/docs/api-reference/hyperlink.md index f0b9589..dfe22bf 100644 --- a/docs/api-reference/hyperlink.md +++ b/docs/api-reference/hyperlink.md @@ -1,3 +1,7 @@ +--- +description: "`Hyperlink(url)` makes any content clickable (text, images, other elements); also usable inside text." +--- + # Hyperlink The Hyperlink element creates a clickable area that redirects the user to a designated webpage. diff --git a/docs/api-reference/image/basics.md b/docs/api-reference/image/basics.md index 64bf6cb..eebdc13 100644 --- a/docs/api-reference/image/basics.md +++ b/docs/api-reference/image/basics.md @@ -1,3 +1,7 @@ +--- +description: "Embed JPEG, PNG, BMP or WEBP images; the aspect ratio is kept by default; scaling with `FitWidth`, `FitHeight`, `FitArea`, `FitUnproportionally`. Files loaded by relative path must be copied to the output directory." +--- + # Image Use this element to embed images into your document. By default, it preserves the image's original aspect ratio, ensuring that your visuals remain undistorted. diff --git a/docs/api-reference/image/dynamic.md b/docs/api-reference/image/dynamic.md index 7eaf868..01752ce 100644 --- a/docs/api-reference/image/dynamic.md +++ b/docs/api-reference/image/dynamic.md @@ -1,3 +1,7 @@ +--- +description: "Generate an image at the exact size of its slot: a delegate receives the available space and returns image bytes; useful for charts and maps." +--- + # Dynamic Images QuestPDF provides flexible layouts, which means the optimal image resolution cannot always be determined in advance. diff --git a/docs/api-reference/image/optimization.md b/docs/api-reference/image/optimization.md index 6ea15f9..8f7c6a7 100644 --- a/docs/api-reference/image/optimization.md +++ b/docs/api-reference/image/optimization.md @@ -1,3 +1,7 @@ +--- +description: "Reduce PDF size with `WithCompressionQuality` and `WithRasterDpi`, per image or globally in `DocumentSettings`, or keep the source with `UseOriginalImage`." +--- + # Optimization Images can be a significant factor in the file size of your PDF documents. diff --git a/docs/api-reference/image/shared.md b/docs/api-reference/image/shared.md index 9c18036..d8320f3 100644 --- a/docs/api-reference/image/shared.md +++ b/docs/api-reference/image/shared.md @@ -1,3 +1,7 @@ +--- +description: "Load an image once with `Image.FromFile` and reuse it across many placements; since 2025.4.0 images loaded by file path are also cached automatically." +--- + # Shared Images When generating a PDF with multiple items that use the same image, processing the image repeatedly can negatively affect both performance and the final file size. diff --git a/docs/api-reference/image/svg.md b/docs/api-reference/image/svg.md index 341604f..ca6b019 100644 --- a/docs/api-reference/image/svg.md +++ b/docs/api-reference/image/svg.md @@ -1,3 +1,7 @@ +--- +description: "Draw SVG from a file path or markup, or preload it with `SvgImage.FromFile`; SVG always keeps its aspect ratio; text in SVG uses fonts available to QuestPDF, and a missing font or glyph there does not throw." +--- + # SVG Support QuestPDF supports SVG images, allowing you to integrate scalable vector graphics just as you would with raster images. diff --git a/docs/api-reference/inlined.md b/docs/api-reference/inlined.md index 00baa79..87a6b1c 100644 --- a/docs/api-reference/inlined.md +++ b/docs/api-reference/inlined.md @@ -1,3 +1,7 @@ +--- +description: "`Inlined`: items in a line that wraps to the next line when full (tags, chips), with spacing and horizontal and baseline alignment." +--- + # Inlined The Inlined component arranges elements sequentially in a line, automatically wrapping to the next line when needed. diff --git a/docs/api-reference/layers.md b/docs/api-reference/layers.md index eb77b72..3488a06 100644 --- a/docs/api-reference/layers.md +++ b/docs/api-reference/layers.md @@ -1,3 +1,7 @@ +--- +description: "`Layers`: content under or over the main layer, with exactly one `PrimaryLayer`; layers defined before it are drawn underneath, after it on top. Extra layers are not repeated on every page; for a watermark or background on every page, use `page.Foreground()` or `page.Background()`." +--- + # Layers The Layers element adds content either underneath (as a background) or on top of (as a watermark) the main content. diff --git a/docs/api-reference/lazy.md b/docs/api-reference/lazy.md index e0e8b74..1367646 100644 --- a/docs/api-reference/lazy.md +++ b/docs/api-reference/lazy.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Lazy` and `LazyWithCache` build content only when it is rendered, to cut memory use in documents with thousands of pages (`LazyWithCache` is faster but uses more native memory)." --- diff --git a/docs/api-reference/line.md b/docs/api-reference/line.md index 11dd3dd..63556e4 100644 --- a/docs/api-reference/line.md +++ b/docs/api-reference/line.md @@ -1,3 +1,7 @@ +--- +description: "Horizontal and vertical lines (`LineHorizontal`, `LineVertical`) with thickness, color, gradient and dash pattern (the pattern array length must be even)." +--- + # Line The Line component allows you to render simple yet customizable vertical and horizontal lines within your layout. diff --git a/docs/api-reference/lists.md b/docs/api-reference/lists.md index 0a89c9a..a38a8d5 100644 --- a/docs/api-reference/lists.md +++ b/docs/api-reference/lists.md @@ -1,3 +1,7 @@ +--- +description: "There is no list element: build bullet, numbered and nested lists from `Column` and `Row`." +--- + # Ordered and bullet lists Lists are an essential part of structured documents, helping to present information in an organized and easy-to-read format. diff --git a/docs/api-reference/maps.md b/docs/api-reference/maps.md index 3d7553c..4a4ddcc 100644 --- a/docs/api-reference/maps.md +++ b/docs/api-reference/maps.md @@ -1,3 +1,7 @@ +--- +description: "Embed static maps from the Mapbox Static Maps API (paid service with a free tier) as images; use your own access token and fetch the map before generating the document, not during it." +--- + # Maps QuestPDF provides seamless integration with Mapbox Static Maps API, allowing you to embed high-quality, customizable maps into your PDF documents. diff --git a/docs/api-reference/multi-column.md b/docs/api-reference/multi-column.md index 9381021..8182ad7 100644 --- a/docs/api-reference/multi-column.md +++ b/docs/api-reference/multi-column.md @@ -1,5 +1,6 @@ --- outline: false +description: "`MultiColumn`: newspaper-style columns; content fills columns left to right, then continues on the next page; `BalanceHeight` evens out the last page; costly to compute." --- diff --git a/docs/api-reference/offset.md b/docs/api-reference/offset.md index 6a32e76..5567862 100644 --- a/docs/api-reference/offset.md +++ b/docs/api-reference/offset.md @@ -1,3 +1,7 @@ +--- +description: "`OffsetX`, `OffsetY`: move content visually without changing its layout size (replaces the obsolete `TranslateX`, `TranslateY`)." +--- + # Offset This container allows you to precisely position content by moving it horizontally and vertically relative to its original position, independent of layout constraints. diff --git a/docs/api-reference/padding.md b/docs/api-reference/padding.md index e01d342..4ff6118 100644 --- a/docs/api-reference/padding.md +++ b/docs/api-reference/padding.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Padding` and per-side variants (`PaddingHorizontal`, `PaddingTop`, …) add space around content; negative values push content beyond its edges." --- diff --git a/docs/api-reference/page-break.md b/docs/api-reference/page-break.md index 054c8ff..f9e47be 100644 --- a/docs/api-reference/page-break.md +++ b/docs/api-reference/page-break.md @@ -1,3 +1,7 @@ +--- +description: "`PageBreak()`: start the following content on a new page, e.g. one section per page." +--- + # Page break The Page Break feature allows you to control the layout of your document by forcing content to start on a new page. diff --git a/docs/api-reference/page/basics.md b/docs/api-reference/page/basics.md index 810fa08..249d7e5 100644 --- a/docs/api-reference/page/basics.md +++ b/docs/api-reference/page/basics.md @@ -1,3 +1,7 @@ +--- +description: "A minimal page with margins, header, content and footer; the starting point for every document." +--- + # Page This container allows you to define your page layout by configuring margins, watermarks, and different content sections such as header, footer, and the main content area. diff --git a/docs/api-reference/page/settings.md b/docs/api-reference/page/settings.md index 5fe6542..e4e6e91 100644 --- a/docs/api-reference/page/settings.md +++ b/docs/api-reference/page/settings.md @@ -1,3 +1,7 @@ +--- +description: "Page size (presets such as `PageSizes.A4.Landscape()`, custom, continuous or flexible height), margins, page color, default text style, content direction, and several page setups in one document." +--- + # Page Settings This section describes how to configure the page settings in your document. diff --git a/docs/api-reference/page/slots.md b/docs/api-reference/page/slots.md index 7f81dd3..797af96 100644 --- a/docs/api-reference/page/slots.md +++ b/docs/api-reference/page/slots.md @@ -1,3 +1,7 @@ +--- +description: "`Header` and `Footer` appear on every page and must fit on it; `Content` flows across pages and sets the page count; `Background` and `Foreground` cover the whole page behind or in front of them, ignoring margins (e.g. a watermark)." +--- + # Page Slots The Page container is a multi-child container that allows you to define the layout of the page. diff --git a/docs/api-reference/placeholder.md b/docs/api-reference/placeholder.md index 6485378..f3f05d2 100644 --- a/docs/api-reference/placeholder.md +++ b/docs/api-reference/placeholder.md @@ -1,3 +1,7 @@ +--- +description: "`Placeholder()`: a box with an icon or label for sketching a layout before content exists." +--- + # Placeholder The Placeholder element is a simple utility for prototyping and layout visualization. diff --git a/docs/api-reference/prevent-page-break.md b/docs/api-reference/prevent-page-break.md index 9ef044b..b28b01e 100644 --- a/docs/api-reference/prevent-page-break.md +++ b/docs/api-reference/prevent-page-break.md @@ -1,5 +1,6 @@ --- outline: false +description: "`PreventPageBreak`: if the content doesn't fit in the rest of the page, move it to the next one; if it is taller than a page, it still splits there. On table cells it tears rows apart: to keep a row together, use `ShowEntire` on every cell." --- diff --git a/docs/api-reference/repeat.md b/docs/api-reference/repeat.md index efd9952..f0c4e20 100644 --- a/docs/api-reference/repeat.md +++ b/docs/api-reference/repeat.md @@ -1,3 +1,7 @@ +--- +description: "`Repeat`: draw the content again on every page its container spans (e.g. a term label next to a long definition)." +--- + # Repeat When designing a document, you may need certain elements—such as headers, footers, labels, or key terms—to be visible on every page where applicable. diff --git a/docs/api-reference/rotate.md b/docs/api-reference/rotate.md index 0a8b38d..e536d1e 100644 --- a/docs/api-reference/rotate.md +++ b/docs/api-reference/rotate.md @@ -1,3 +1,7 @@ +--- +description: "`RotateLayoutClockwise` and `RotateLayoutCounterclockwise` turn content by 90° and swap width and height; `Rotate(angle)` turns it freely around its center." +--- + # Rotate ## Constrained diff --git a/docs/api-reference/rounded-corners.md b/docs/api-reference/rounded-corners.md index cff2bdb..89465f8 100644 --- a/docs/api-reference/rounded-corners.md +++ b/docs/api-reference/rounded-corners.md @@ -1,3 +1,7 @@ +--- +description: "`CornerRadius` for all corners or each corner separately; it also clips the content, e.g. a photo inside a card." +--- + # Rounded Corners Rounded corners can be applied to containers to create visually appealing designs. diff --git a/docs/api-reference/row.md b/docs/api-reference/row.md index 8c81690..fd7c1b8 100644 --- a/docs/api-reference/row.md +++ b/docs/api-reference/row.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Row`: place items side by side as `RelativeItem`, `ConstantItem` or `AutoItem`, with spacing; for items that should wrap to the next line, use `Inlined`." --- diff --git a/docs/api-reference/scale-to-fit.md b/docs/api-reference/scale-to-fit.md index b089ee5..b29acb8 100644 --- a/docs/api-reference/scale-to-fit.md +++ b/docs/api-reference/scale-to-fit.md @@ -1,3 +1,7 @@ +--- +description: "`ScaleToFit`: shrink content proportionally until it fits the available space; costly for complex content and can still fail with fixed sizes or aspect ratios." +--- + # Scale to fit This container dynamically adjusts its content to fit within the available space by proportionally scaling it down if necessary. diff --git a/docs/api-reference/scale.md b/docs/api-reference/scale.md index 58e5f38..5d608d6 100644 --- a/docs/api-reference/scale.md +++ b/docs/api-reference/scale.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Scale`, `ScaleHorizontal`, `ScaleVertical`: enlarge or shrink content by a factor (squeeze or stretch on one axis)." --- diff --git a/docs/api-reference/section.md b/docs/api-reference/section.md index bef2aaf..86498e4 100644 --- a/docs/api-reference/section.md +++ b/docs/api-reference/section.md @@ -1,3 +1,7 @@ +--- +description: "`Section(\"name\")` marks a part of the document; `SectionLink(\"name\")` jumps to it, and section page numbers build a table of contents." +--- + # Section A **Section** defines a named fragment of a document that can span multiple pages. diff --git a/docs/api-reference/shadow.md b/docs/api-reference/shadow.md index 3dad770..b79bb8a 100644 --- a/docs/api-reference/shadow.md +++ b/docs/api-reference/shadow.md @@ -1,3 +1,7 @@ +--- +description: "Drop shadow with blur, spread, offset and color via `Shadow(new BoxShadowStyle { ... })`; a blur other than 0 slows rendering and enlarges the file." +--- + # Shadow Shadows can enhance the visual depth and separation of elements in a document. diff --git a/docs/api-reference/show-entire.md b/docs/api-reference/show-entire.md index b4309a4..f6fc304 100644 --- a/docs/api-reference/show-entire.md +++ b/docs/api-reference/show-entire.md @@ -1,3 +1,7 @@ +--- +description: "`ShowEntire`: keep content on one page; throws `DocumentLayoutException` if it is taller than a page. Put it on every cell of a table row to keep the row together." +--- + # Show entire The ShowEntire element is designed to ensure that specific content remains on a single page, preventing it from being split across multiple pages. diff --git a/docs/api-reference/show-if.md b/docs/api-reference/show-if.md index afa11fa..78f0473 100644 --- a/docs/api-reference/show-if.md +++ b/docs/api-reference/show-if.md @@ -1,5 +1,6 @@ --- outline: false +description: "`ShowIf(bool)` shows or hides content at compose time. The `ShowIf(ctx => ...)` overload decides per page, but conditions on `TotalPages` are unreliable (e.g. \"only on the last page\" never shows with default settings)." --- diff --git a/docs/api-reference/show-once.md b/docs/api-reference/show-once.md index fb94fcc..d722303 100644 --- a/docs/api-reference/show-once.md +++ b/docs/api-reference/show-once.md @@ -1,3 +1,7 @@ +--- +description: "`ShowOnce`: draw content only on the first page where it would repeat (headers, footers, `Decoration` sections), e.g. a different first-page header." +--- + # Show once The ShowOnce element provides fine-grained control over content rendering across multiple pages. diff --git a/docs/api-reference/shrink.md b/docs/api-reference/shrink.md index 3fcaced..b23c425 100644 --- a/docs/api-reference/shrink.md +++ b/docs/api-reference/shrink.md @@ -1,3 +1,7 @@ +--- +description: "`Shrink`, `ShrinkVertical`, `ShrinkHorizontal`: make content as small as its contents allow." +--- + # Shrink Renders its content in the most compact size achievable. diff --git a/docs/api-reference/skiasharp-integration.md b/docs/api-reference/skiasharp-integration.md index 340e7bc..1fdd15b 100644 --- a/docs/api-reference/skiasharp-integration.md +++ b/docs/api-reference/skiasharp-integration.md @@ -1,5 +1,6 @@ --- outline: false +description: "Draw with SkiaSharp when SVG is not enough, as vector SVG or rasterized image. SkiaSharp is installed separately (on Linux also `SkiaSharp.NativeAssets.Linux.NoDependencies`); `SkiaSharpSvgCanvas` and `SkiaSharpRasterizedCanvas` are helper classes defined on this page, not library types." --- diff --git a/docs/api-reference/skip-once.md b/docs/api-reference/skip-once.md index 8020c84..8c859ec 100644 --- a/docs/api-reference/skip-once.md +++ b/docs/api-reference/skip-once.md @@ -1,3 +1,7 @@ +--- +description: "`SkipOnce`: hide content on its first page and show it from the second on (e.g. \"continued\" labels); combine with `ShowOnce`, the order matters." +--- + # Skip once If the container spans multiple pages, its content is omitted on the first page and then displayed on the second and subsequent pages. diff --git a/docs/api-reference/stop-paging.md b/docs/api-reference/stop-paging.md index b74a604..15128e7 100644 --- a/docs/api-reference/stop-paging.md +++ b/docs/api-reference/stop-paging.md @@ -1,5 +1,6 @@ --- outline: false +description: "`StopPaging`: draw only what fits on the first page and drop the rest; to limit content to an area, prefer `ClampLines` or `ScaleToFit`." --- diff --git a/docs/api-reference/table/basics.md b/docs/api-reference/table/basics.md index 9646011..fe0c4d8 100644 --- a/docs/api-reference/table/basics.md +++ b/docs/api-reference/table/basics.md @@ -1,3 +1,7 @@ +--- +description: "`Table`: define columns (`ConstantColumn`, `RelativeColumn`), add cells in order or at a given row and column, span with `RowSpan` and `ColumnSpan`; also for fixed grids such as a label sheet. To keep a row on one page, put `ShowEntire` on every cell of it." +--- + # Table QuestPDF’s table component provides a robust, flexible way to create complex, dynamic layouts in your PDF documents. diff --git a/docs/api-reference/table/cell-style-pattern.md b/docs/api-reference/table/cell-style-pattern.md index 0ebcd82..4091c98 100644 --- a/docs/api-reference/table/cell-style-pattern.md +++ b/docs/api-reference/table/cell-style-pattern.md @@ -1,3 +1,7 @@ +--- +description: "Style table cells consistently with a reusable function passed to `Element(...)`." +--- + # Cell Style Pattern This code pattern provides a structured approach to styling individual table cells in a consistent and reusable manner. diff --git a/docs/api-reference/table/header-and-footer.md b/docs/api-reference/table/header-and-footer.md index 2c171f9..ef07266 100644 --- a/docs/api-reference/table/header-and-footer.md +++ b/docs/api-reference/table/header-and-footer.md @@ -1,3 +1,7 @@ +--- +description: "Table `Header` and `Footer` repeat on every page the table spans; they are separate from the body rows." +--- + # Table: Header And Foot When working with larger tables that span multiple pages, it is often helpful to define a dedicated table header and footer. diff --git a/docs/api-reference/table/overlapping-cells.md b/docs/api-reference/table/overlapping-cells.md index f9580ed..713617b 100644 --- a/docs/api-reference/table/overlapping-cells.md +++ b/docs/api-reference/table/overlapping-cells.md @@ -1,3 +1,7 @@ +--- +description: "A complex grid built from cells that span rows and columns and overlap (e.g. a schedule)." +--- + # Overlapping Cells This example demonstrates how to create complex structures by overlapping multiple cells, spanning them across rows and columns, and applying dynamic styling. diff --git a/docs/api-reference/text/basics.md b/docs/api-reference/text/basics.md index 841a2df..2075545 100644 --- a/docs/api-reference/text/basics.md +++ b/docs/api-reference/text/basics.md @@ -1,3 +1,7 @@ +--- +description: "Add text with `Text(\"...\")` or rich text built from spans, style it, and add hyperlinks." +--- + # Text ## Simple usage diff --git a/docs/api-reference/text/font-management.md b/docs/api-reference/text/font-management.md index e6d0660..2394820 100644 --- a/docs/api-reference/text/font-management.md +++ b/docs/api-reference/text/font-management.md @@ -1,3 +1,7 @@ +--- +description: "Lato is the default font (Latin, Greek, Cyrillic); for other scripts and emoji, deploy Noto fonts. Fonts next to the app are registered automatically and used by the family name stored in the file (registering under a custom name is deprecated); `RegisterFontFrom*` for other sources; system fonts are off by default (`UseSystemFonts`); missing families or glyphs throw." +--- + # Font management ## Library default font diff --git a/docs/api-reference/text/injecting-custom-content.md b/docs/api-reference/text/injecting-custom-content.md index bd4b4a6..ee3d0d0 100644 --- a/docs/api-reference/text/injecting-custom-content.md +++ b/docs/api-reference/text/injecting-custom-content.md @@ -1,3 +1,7 @@ +--- +description: "Put an image, SVG or any element inline in text with `Element(...)`; it must fit on one line and can't span pages." +--- + # Injecting custom content It is possible to inject custom content into the document, e.g. images. diff --git a/docs/api-reference/text/page-numbers.md b/docs/api-reference/text/page-numbers.md index d0eb6c8..75126b4 100644 --- a/docs/api-reference/text/page-numbers.md +++ b/docs/api-reference/text/page-numbers.md @@ -1,3 +1,7 @@ +--- +description: "Page numbers inside text: `CurrentPageNumber()`, `TotalPages()`, per-section variants such as `BeginPageNumberOfSection`, and custom number formatting (the formatter receives `null` in the first layout pass)." +--- + # Page Numbers ## Document related diff --git a/docs/api-reference/text/paragraph-style.md b/docs/api-reference/text/paragraph-style.md index 1441c9c..743a1c0 100644 --- a/docs/api-reference/text/paragraph-style.md +++ b/docs/api-reference/text/paragraph-style.md @@ -1,3 +1,7 @@ +--- +description: "Paragraph alignment (incl. justify), default paragraph style, spacing between paragraphs, first-line indentation, `ClampLines` with ellipsis." +--- + # Paragraph Style ## Text Alignment diff --git a/docs/api-reference/text/style-inheritance.md b/docs/api-reference/text/style-inheritance.md index c6f88a1..42fc857 100644 --- a/docs/api-reference/text/style-inheritance.md +++ b/docs/api-reference/text/style-inheritance.md @@ -1,3 +1,7 @@ +--- +description: "`DefaultTextStyle` sets the text style for everything inside a container; children can override it locally." +--- + # Style inheritance The `DefaultTextStyle` API allows you to define text styles that are automatically inherited by all child elements unless explicitly overridden. diff --git a/docs/api-reference/text/text-style.md b/docs/api-reference/text/text-style.md index 61faf10..858c592 100644 --- a/docs/api-reference/text/text-style.md +++ b/docs/api-reference/text/text-style.md @@ -1,3 +1,7 @@ +--- +description: "Font size, family, fallback, color, weight, italic, decorations, sub- and superscript, line height, letter and word spacing, hyphenation, font features, `BreakAnywhere`. No variable-weight fonts; no automatic hyphenation (a hyphen appears only at soft hyphens); ligatures are off by default." +--- + # Text Style ## Font Size diff --git a/docs/api-reference/unconstrained.md b/docs/api-reference/unconstrained.md index a7bf00e..03ad7ef 100644 --- a/docs/api-reference/unconstrained.md +++ b/docs/api-reference/unconstrained.md @@ -1,3 +1,7 @@ +--- +description: "`Unconstrained`: content takes no layout space and ignores parent size limits, so it can overlap or extend past its container; position it with `OffsetX`, `OffsetY`." +--- + # Unconstrained The Unconstrained container creates a space where content can go beyond the limits set by parent elements. diff --git a/docs/api-reference/width.md b/docs/api-reference/width.md index 6008234..e22e566 100644 --- a/docs/api-reference/width.md +++ b/docs/api-reference/width.md @@ -1,5 +1,6 @@ --- outline: false +description: "`Width`, `MinWidth`, `MaxWidth`: constrain the horizontal size of content; impossible constraints (e.g. wider than the available space) throw a layout exception." --- diff --git a/docs/api-reference/zindex.md b/docs/api-reference/zindex.md index 3dae45e..32b33b6 100644 --- a/docs/api-reference/zindex.md +++ b/docs/api-reference/zindex.md @@ -1,5 +1,6 @@ --- outline: false +description: "`ZIndex`: change drawing order; higher values are drawn on top (default 0, inherited from the parent)." --- diff --git a/docs/companion/download.md b/docs/companion/download.md index e4d0ba3..d97e44c 100644 --- a/docs/companion/download.md +++ b/docs/companion/download.md @@ -1,3 +1,7 @@ +--- +description: "Companion App downloads for Windows, macOS and Linux, and which library versions each app version supports." +--- + # Companion App: Downloads The QuestPDF Companion application is available for download on Windows, MacOS, and Linux. diff --git a/docs/companion/features.md b/docs/companion/features.md index 08e4d2e..92dd381 100644 --- a/docs/companion/features.md +++ b/docs/companion/features.md @@ -1,3 +1,7 @@ +--- +description: "What the Companion App preview offers: element hierarchy, measuring, search, go to code, layout-issue debugging, shortcuts." +--- + # Companion: Features The companion app provides a preview of the document. The preview is interactive and allows you to navigate the document, select elements, and measure distances. diff --git a/docs/companion/usage.md b/docs/companion/usage.md index 094b620..49456ed 100644 --- a/docs/companion/usage.md +++ b/docs/companion/usage.md @@ -1,3 +1,7 @@ +--- +description: "Live document preview with hot reload: install the Companion App and call `ShowInCompanion()` (QuestPDF 2024.10 or newer); hot-reload steps for Visual Studio, Rider and the terminal." +--- + # Companion App ## Introduction diff --git a/docs/companion/warnings.md b/docs/companion/warnings.md index 2fbcc8f..002fcf8 100644 --- a/docs/companion/warnings.md +++ b/docs/companion/warnings.md @@ -1,3 +1,7 @@ +--- +description: "What the Companion App warnings mean (complex document, hot reload) and how to resolve them." +--- + # Companion App: Warning Messages ## Complex document diff --git a/docs/concepts/accessibility.md b/docs/concepts/accessibility.md index 18d74a6..f6205fd 100644 --- a/docs/concepts/accessibility.md +++ b/docs/concepts/accessibility.md @@ -1,5 +1,6 @@ --- outline: [2, 3] +description: "Create tagged, accessible PDFs (PDF/UA-1, PDF/A): `Semantic*` elements for headings, lists, tables, images and links; semantic headings also build the PDF outline (bookmarks); set `PDFUA_Conformance` so the tags are written; validate with veraPDF or PAC." --- diff --git a/docs/concepts/code-patterns/capture-content-position.md b/docs/concepts/code-patterns/capture-content-position.md index 2e6b591..debfd10 100644 --- a/docs/concepts/code-patterns/capture-content-position.md +++ b/docs/concepts/code-patterns/capture-content-position.md @@ -1,5 +1,6 @@ --- outline: false +description: "Record where content lands with `CaptureContentPosition` and read it in a dynamic component via `GetContentCapturedPositions`; may be empty in the first layout pass." --- diff --git a/docs/concepts/code-patterns/components.md b/docs/concepts/code-patterns/components.md index bf8e0cb..87808e5 100644 --- a/docs/concepts/code-patterns/components.md +++ b/docs/concepts/code-patterns/components.md @@ -1,5 +1,6 @@ --- outline: false +description: "Reusable content as a class implementing `IComponent` (`Compose(IContainer)`), placed with `container.Component(...)`." --- diff --git a/docs/concepts/code-patterns/content-styling.md b/docs/concepts/code-patterns/content-styling.md index 0dcd68e..4b59926 100644 --- a/docs/concepts/code-patterns/content-styling.md +++ b/docs/concepts/code-patterns/content-styling.md @@ -1,3 +1,7 @@ +--- +description: "A shared cell or block style as a local function passed to `Element(...)`." +--- + # Code pattern: content styling When designing PDF documents, many elements often share similar styles. diff --git a/docs/concepts/code-patterns/document-structure.md b/docs/concepts/code-patterns/document-structure.md index 0e3cd93..4be86e1 100644 --- a/docs/concepts/code-patterns/document-structure.md +++ b/docs/concepts/code-patterns/document-structure.md @@ -1,3 +1,7 @@ +--- +description: "One way to split document code: each section in its own well-named method, placed with `Element(...)`." +--- + # Code pattern: document code structure Organizing your code effectively is crucial for maintainability and readability. diff --git a/docs/concepts/code-patterns/dynamic-components.md b/docs/concepts/code-patterns/dynamic-components.md index 0707a62..a1724d3 100644 --- a/docs/concepts/code-patterns/dynamic-components.md +++ b/docs/concepts/code-patterns/dynamic-components.md @@ -1,5 +1,6 @@ --- outline: false +description: "Content composed separately for each page (page number, total pages, available space) with `IDynamicComponent` and `container.Dynamic(...)`; `DynamicContext` lives in `QuestPDF.Elements`. `Compose` may run several times per page: treat state as read-only and return a new one. Example: per-page subtotals." --- diff --git a/docs/concepts/code-patterns/execution-order.md b/docs/concepts/code-patterns/execution-order.md index 480a6f0..95b5f2b 100644 --- a/docs/concepts/code-patterns/execution-order.md +++ b/docs/concepts/code-patterns/execution-order.md @@ -1,3 +1,7 @@ +--- +description: "Fluent calls apply in order: `Border().Background().Padding()` looks different from `Padding().Background().Border()`." +--- + # Execution order QuestPDF uses a fluent API with method chaining to define your document's structure and appearance. diff --git a/docs/concepts/code-patterns/extension-methods.md b/docs/concepts/code-patterns/extension-methods.md index 0d150b8..98e30f9 100644 --- a/docs/concepts/code-patterns/extension-methods.md +++ b/docs/concepts/code-patterns/extension-methods.md @@ -1,3 +1,7 @@ +--- +description: "Extension methods on `IContainer` that share styles and building blocks across documents." +--- + # Code pattern: extension methods When you find yourself implementing the same styling or content patterns repeatedly across different documents, extension methods offer the perfect solution. diff --git a/docs/concepts/code-patterns/local-helpers.md b/docs/concepts/code-patterns/local-helpers.md index 90d9ea8..aa13e37 100644 --- a/docs/concepts/code-patterns/local-helpers.md +++ b/docs/concepts/code-patterns/local-helpers.md @@ -1,3 +1,7 @@ +--- +description: "C# local functions inside a compose method that reuse small layout fragments without new classes." +--- + # Code pattern: local helpers When building complex document layouts, you might find yourself repeating similar code structures. diff --git a/docs/concepts/colors.md b/docs/concepts/colors.md index c789ecc..96dd9af 100644 --- a/docs/concepts/colors.md +++ b/docs/concepts/colors.md @@ -1,5 +1,6 @@ --- outline: false +description: "Color formats (`#RRGGBB`, `#AARRGGBB` with alpha first, shorthand) and the built-in Material Design palette in `Colors`." --- diff --git a/docs/concepts/document-metadata.md b/docs/concepts/document-metadata.md index c0eeda0..c082ef1 100644 --- a/docs/concepts/document-metadata.md +++ b/docs/concepts/document-metadata.md @@ -1,3 +1,7 @@ +--- +description: "Set PDF metadata (title, author, subject, keywords, dates) with `WithMetadata`." +--- + # Document metadata It is possible to include additional information about the PDF document. diff --git a/docs/concepts/document-operations.md b/docs/concepts/document-operations.md index 4c0c19b..60261da 100644 --- a/docs/concepts/document-operations.md +++ b/docs/concepts/document-operations.md @@ -1,3 +1,7 @@ +--- +description: "Work on existing PDF files (since 2024.12.0): merge, select pages, overlay or underlay, encrypt or decrypt, linearize, attach files and extend XMP metadata (PDF/A-3b, ZUGFeRD). Option types are nested: `DocumentOperation.LayerConfiguration`, `DocumentOperation.Encryption256Bit`." +--- + # PDF Document Operations The Document Operations API provides functionality for performing various operations on PDF documents, including loading, merging, overlaying, underlaying, selecting specific pages, adding attachments, and applying encryption settings. diff --git a/docs/concepts/document-settings.md b/docs/concepts/document-settings.md index d1178a2..02c162f 100644 --- a/docs/concepts/document-settings.md +++ b/docs/concepts/document-settings.md @@ -1,3 +1,7 @@ +--- +description: "`DocumentSettings`: PDF/A and PDF/UA conformance, compression, image quality and raster DPI, content direction." +--- + # Document Settings QuestPDF provides comprehensive control over the document generation process through the `DocumentSettings` class. These settings allow you to fine-tune various aspects of your PDF output, including compliance standards, compression, image quality, and content direction. diff --git a/docs/concepts/dynamic-composition/conditional-formatting.md b/docs/concepts/dynamic-composition/conditional-formatting.md index c2531bb..87344be 100644 --- a/docs/concepts/dynamic-composition/conditional-formatting.md +++ b/docs/concepts/dynamic-composition/conditional-formatting.md @@ -1,5 +1,6 @@ --- outline: false +description: "Style values by data with plain C# conditions, e.g. highlight price changes above a threshold." --- diff --git a/docs/concepts/dynamic-composition/configurable-tables.md b/docs/concepts/dynamic-composition/configurable-tables.md index fd0084a..de6004a 100644 --- a/docs/concepts/dynamic-composition/configurable-tables.md +++ b/docs/concepts/dynamic-composition/configurable-tables.md @@ -1,5 +1,6 @@ --- outline: false +description: "Build table columns, headers and cells from runtime configuration, e.g. user-selected report columns." --- diff --git a/docs/concepts/dynamic-composition/mixed-content-blocks.md b/docs/concepts/dynamic-composition/mixed-content-blocks.md index 73570fe..72ab827 100644 --- a/docs/concepts/dynamic-composition/mixed-content-blocks.md +++ b/docs/concepts/dynamic-composition/mixed-content-blocks.md @@ -1,5 +1,6 @@ --- outline: false +description: "Render content blocks known only at runtime (headings, paragraphs, images, quotes) by pattern matching over a record hierarchy." --- diff --git a/docs/concepts/dynamic-composition/nested-content.md b/docs/concepts/dynamic-composition/nested-content.md index 8ea80b4..9d22fe6 100644 --- a/docs/concepts/dynamic-composition/nested-content.md +++ b/docs/concepts/dynamic-composition/nested-content.md @@ -1,5 +1,6 @@ --- outline: false +description: "Render trees of arbitrary depth (categories, org charts, nested bills of materials) with a recursive compose method." --- diff --git a/docs/concepts/generating-output.md b/docs/concepts/generating-output.md index 5eb711b..2cb6728 100644 --- a/docs/concepts/generating-output.md +++ b/docs/concepts/generating-output.md @@ -1,3 +1,7 @@ +--- +description: "Generate a PDF to a file, stream or byte array, or render pages as SVG or images; how layout errors are reported (the message can include document text)." +--- + # Generating output The primary goal of the QuestPDF library is to generate PDF files. diff --git a/docs/concepts/length-unit-types.md b/docs/concepts/length-unit-types.md index fb4db44..6b49cc1 100644 --- a/docs/concepts/length-unit-types.md +++ b/docs/concepts/length-unit-types.md @@ -1,5 +1,6 @@ --- outline: false +description: "Points (1/72 inch) are the default unit; most size methods accept a `Unit`: `Point`, `Inch`, `Feet`, `Mil`, `Meter`, `Centimetre`, `Millimetre` (British spelling)." --- diff --git a/docs/concepts/merging-documents.md b/docs/concepts/merging-documents.md index 3a393cb..70a53ef 100644 --- a/docs/concepts/merging-documents.md +++ b/docs/concepts/merging-documents.md @@ -1,3 +1,7 @@ +--- +description: "Generate several documents and merge them into one PDF with original or continuous page numbers; to merge existing files, use Document Operations." +--- + # Merging documents QuestPDF makes it easy to generate multiple PDF documents and then combine them into one. diff --git a/docs/concepts/prototyping.md b/docs/concepts/prototyping.md index 063ffef..a45bf32 100644 --- a/docs/concepts/prototyping.md +++ b/docs/concepts/prototyping.md @@ -1,3 +1,7 @@ +--- +description: "Generate placeholder text, numbers, colors and images with `Placeholders` to prototype a layout before real data exists." +--- + # Prototyping Placeholders in QuestPDF let you quickly generate random text, numbers, colors, and images. diff --git a/docs/document-previewer.md b/docs/document-previewer.md index 12ec490..ff1dd7f 100644 --- a/docs/document-previewer.md +++ b/docs/document-previewer.md @@ -1,3 +1,7 @@ +--- +description: "Legacy Previewer for QuestPDF before 2024.10, replaced by the Companion App; use `ShowInCompanion()` instead." +--- + # Document previewer ::: danger LEGACY TOOL diff --git a/docs/examples/aspnet-integration.md b/docs/examples/aspnet-integration.md index d731c53..14860c9 100644 --- a/docs/examples/aspnet-integration.md +++ b/docs/examples/aspnet-integration.md @@ -1,3 +1,7 @@ +--- +description: "Set the license once at startup in ASP.NET, then generate a PDF in an endpoint and return it as a file." +--- + # Integration with ASP.NET ## License configuration diff --git a/docs/examples/custom-header-on-first-page.md b/docs/examples/custom-header-on-first-page.md index e48c6ec..317fcac 100644 --- a/docs/examples/custom-header-on-first-page.md +++ b/docs/examples/custom-header-on-first-page.md @@ -1,3 +1,7 @@ +--- +description: "A different header or footer on the first page with `ShowOnce` and `SkipOnce`." +--- + # Customizing Header/Footer on the first page A common requirement in document design is to create a distinct header for the first page, with all subsequent pages sharing a standard header format. diff --git a/docs/examples/zugferd.md b/docs/examples/zugferd.md index ae50b29..621d120 100644 --- a/docs/examples/zugferd.md +++ b/docs/examples/zugferd.md @@ -1,3 +1,7 @@ +--- +description: "Create a ZUGFeRD 2.1 e-invoice: PDF/A-3b document, invoice XML attachment and XMP metadata via Document Operations (`AddAttachment`, `ExtendMetadata`); validate with veraPDF and Mustang." +--- + # Creating ZUGFeRD-Compliant PDF Documents ## Introduction diff --git a/docs/invoice-tutorial.md b/docs/invoice-tutorial.md index 5713dd4..2ca975f 100644 --- a/docs/invoice-tutorial.md +++ b/docs/invoice-tutorial.md @@ -1,5 +1,6 @@ --- outline: [2, 3] +description: "Build a complete paginated invoice step by step: data models, data source, header and footer, line-item table, reusable address component." --- # In-Depth Invoice Tutorial diff --git a/docs/license/configuration.md b/docs/license/configuration.md index 4752af1..49348ee 100644 --- a/docs/license/configuration.md +++ b/docs/license/configuration.md @@ -1,3 +1,7 @@ +--- +description: "Set `QuestPDF.Settings.License` at startup: `Community`, `Professional` or `Enterprise` (`Evaluation` for learning); no license key, no network calls." +--- + # License configuration QuestPDF uses a hybrid license, which is a model that benefits everyone. diff --git a/docs/quick-start.md b/docs/quick-start.md index ab54240..a174a74 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -1,3 +1,7 @@ +--- +description: "Install the NuGet package, set the license, and generate a first PDF with a minimal `Document.Create` example." +--- + # Quick start QuestPDF is a modern C# library for PDF generation that provides a dedicated layout engine optimized specifically for creating PDF documents. Its component-based architecture lets you compose simple elements (such as text, images, tables, and grids) into sophisticated layouts through an intuitive, declarative API. Because it's pure C#, you get full access to familiar programming constructs, strong typing, and seamless IDE support. diff --git a/docs/roadmap.md b/docs/roadmap.md index b105fd0..eb61ca5 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,3 +1,7 @@ +--- +description: "Features in progress, planned (more platforms, AcroForms, PDF signing, PDF/A-4, PDF/UA-2) and recently delivered (e.g. Native AOT); no fixed dates." +--- + # Roadmap QuestPDF is built to be a dependable, long-term foundation for generating PDF documents in code. This page outlines where the library is heading, including the capabilities we are actively building and our strategic direction over the coming releases.