From 76cf1201462835784bfd60a30d167530509041b2 Mon Sep 17 00:00:00 2001 From: Dawid Nowak Date: Tue, 20 Oct 2026 14:45:31 +0200 Subject: [PATCH] Make llms.txt a useful entry point for AI assistants - Custom llms.txt header: what QuestPDF is, install and license setup, license summary with links to the HTML pricing and license pages, where to start, and a link to llms-full.txt. - A one-line description in the front matter of every listed page, so each llms.txt entry says what the page covers and its main traps. - Exclude include-only tip fragments and pages rendered by Vue components from llms.txt; their Markdown versions are empty. --- docs/.vitepress/config.ts | 31 ++++++++++++++++++- docs/acknowledgements.md | 4 +++ docs/api-reference/alignment.md | 1 + docs/api-reference/aspect-ratio.md | 1 + docs/api-reference/background.md | 1 + docs/api-reference/barcodes.md | 4 +++ docs/api-reference/border.md | 4 +++ docs/api-reference/charts.md | 4 +++ docs/api-reference/column.md | 1 + docs/api-reference/complex-graphics.md | 4 +++ docs/api-reference/content-direction.md | 1 + docs/api-reference/debug-area.md | 1 + docs/api-reference/debug-pointer.md | 1 + docs/api-reference/decoration.md | 1 + docs/api-reference/default-text-style.md | 1 + docs/api-reference/ensure-space.md | 1 + docs/api-reference/extend.md | 4 +++ docs/api-reference/flip.md | 1 + docs/api-reference/height.md | 1 + docs/api-reference/hyperlink.md | 4 +++ docs/api-reference/image/basics.md | 4 +++ docs/api-reference/image/dynamic.md | 4 +++ docs/api-reference/image/optimization.md | 4 +++ docs/api-reference/image/shared.md | 4 +++ docs/api-reference/image/svg.md | 4 +++ docs/api-reference/inlined.md | 4 +++ docs/api-reference/layers.md | 4 +++ docs/api-reference/lazy.md | 1 + docs/api-reference/line.md | 4 +++ docs/api-reference/lists.md | 4 +++ docs/api-reference/maps.md | 4 +++ docs/api-reference/multi-column.md | 1 + docs/api-reference/offset.md | 4 +++ docs/api-reference/padding.md | 1 + docs/api-reference/page-break.md | 4 +++ docs/api-reference/page/basics.md | 4 +++ docs/api-reference/page/settings.md | 4 +++ docs/api-reference/page/slots.md | 4 +++ docs/api-reference/placeholder.md | 4 +++ docs/api-reference/prevent-page-break.md | 1 + docs/api-reference/repeat.md | 4 +++ docs/api-reference/rotate.md | 4 +++ docs/api-reference/rounded-corners.md | 4 +++ docs/api-reference/row.md | 1 + docs/api-reference/scale-to-fit.md | 4 +++ docs/api-reference/scale.md | 1 + docs/api-reference/section.md | 4 +++ docs/api-reference/shadow.md | 4 +++ docs/api-reference/show-entire.md | 4 +++ docs/api-reference/show-if.md | 1 + docs/api-reference/show-once.md | 4 +++ docs/api-reference/shrink.md | 4 +++ docs/api-reference/skiasharp-integration.md | 1 + docs/api-reference/skip-once.md | 4 +++ docs/api-reference/stop-paging.md | 1 + docs/api-reference/table/basics.md | 4 +++ .../api-reference/table/cell-style-pattern.md | 4 +++ docs/api-reference/table/header-and-footer.md | 4 +++ docs/api-reference/table/overlapping-cells.md | 4 +++ docs/api-reference/text/basics.md | 4 +++ docs/api-reference/text/font-management.md | 4 +++ .../text/injecting-custom-content.md | 4 +++ docs/api-reference/text/page-numbers.md | 4 +++ docs/api-reference/text/paragraph-style.md | 4 +++ docs/api-reference/text/style-inheritance.md | 4 +++ docs/api-reference/text/text-style.md | 4 +++ docs/api-reference/unconstrained.md | 4 +++ docs/api-reference/width.md | 1 + docs/api-reference/zindex.md | 1 + docs/companion/download.md | 4 +++ docs/companion/features.md | 4 +++ docs/companion/usage.md | 4 +++ docs/companion/warnings.md | 4 +++ docs/concepts/accessibility.md | 1 + .../code-patterns/capture-content-position.md | 1 + docs/concepts/code-patterns/components.md | 1 + .../concepts/code-patterns/content-styling.md | 4 +++ .../code-patterns/document-structure.md | 4 +++ .../code-patterns/dynamic-components.md | 1 + .../concepts/code-patterns/execution-order.md | 4 +++ .../code-patterns/extension-methods.md | 4 +++ docs/concepts/code-patterns/local-helpers.md | 4 +++ docs/concepts/colors.md | 1 + docs/concepts/document-metadata.md | 4 +++ docs/concepts/document-operations.md | 4 +++ docs/concepts/document-settings.md | 4 +++ .../conditional-formatting.md | 1 + .../configurable-tables.md | 1 + .../mixed-content-blocks.md | 1 + .../dynamic-composition/nested-content.md | 1 + docs/concepts/generating-output.md | 4 +++ docs/concepts/length-unit-types.md | 1 + docs/concepts/merging-documents.md | 4 +++ docs/concepts/prototyping.md | 4 +++ docs/document-previewer.md | 4 +++ docs/examples/aspnet-integration.md | 4 +++ docs/examples/custom-header-on-first-page.md | 4 +++ docs/examples/zugferd.md | 4 +++ docs/invoice-tutorial.md | 1 + docs/license/configuration.md | 4 +++ docs/quick-start.md | 4 +++ docs/roadmap.md | 4 +++ 102 files changed, 332 insertions(+), 1 deletion(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 6ecef611..ea32b741 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 ebb3274a..96597dc4 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 4c9b74e3..84a1be06 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 0bc719c8..2a1be841 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 7a877da8..106b8c08 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 dd0f839e..855c3cac 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 bc5fc1b6..be5fb8da 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 86d32a81..9a3e37aa 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 121acb84..a6807436 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 bee2943e..1bc3158f 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 fd038831..a854e7b0 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 f6dd4696..cba7582e 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 d261448d..dfa359bf 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 a86f6609..c23fb20c 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 1b3ee91a..2d9a56d9 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 4031d33e..520179e6 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 054bb7ca..fb0b71c1 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 e5f247e7..1e1b6dff 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 3d54dc8e..2590a992 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 f0b9589f..dfe22bf1 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 64bf6cb3..eebdc132 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 7eaf8681..01752ced 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 6ea15f9c..8f7c6a72 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 9c18036c..d8320f31 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 341604fc..ca6b019b 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 00baa791..87a6b1cb 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 eb77b722..3488a06b 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 e0e8b743..13676464 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 11dd3ddb..63556e47 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 0a89c9a7..a38a8d5f 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 3d7553cb..4a4ddccc 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 93810214..8182ad78 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 6a32e763..5567862e 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 e01d342f..4ff61188 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 054c8ff9..f9e47be3 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 810fa08b..249d7e50 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 5fe65425..e4e6e916 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 7f81dd32..797af963 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 64853781..f3f05d2e 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 9ef044b1..b28b01e1 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 efd99524..f0c4e202 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 0a8b38d8..e536d1e7 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 cff2bdb5..89465f81 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 8c816908..fd7c1b8b 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 b089ee53..b29acb89 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 58e5f38f..5d608d63 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 bef2aaf6..86498e4a 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 3dad7701..b79bb8ab 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 b4309a49..f6fc3048 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 afa11fae..78f04737 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 fb94fcc4..d7223031 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 3fcaced5..b23c4250 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 340e7bc1..1fdd15b8 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 8020c84c..8c859ecb 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 b74a604a..15128e79 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 96460114..fe0c4d8c 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 0ebcd824..4091c983 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 2c171f99..ef07266b 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 f9580ed1..713617b4 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 841a2df0..20755452 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 e6d06604..23948204 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 bd4b4a6b..ee3d0d0c 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 d0eb6c8d..75126b48 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 1441c9c2..743a1c0c 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 c6f88a13..42fc857a 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 61faf109..858c592b 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 a7bf00ea..03ad7ef5 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 60082341..e22e5668 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 3dae45ed..32b33b6d 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 e4d0ba31..d97e44c8 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 08e4d2ec..92dd3810 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 094b6206..49456ed5 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 2fbcc8f0..002fcf89 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 18d74a6e..f6205fdb 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 2e6b591b..debfd102 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 bf8e0cbb..87808e5c 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 0dcd68ec..4b59926c 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 0e3cd93d..4be86e15 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 0707a626..a1724d32 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 480a6f05..95b5f2b6 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 0d150b85..98e30f92 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 90d9ea84..aa13e379 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 c789ecc5..96dd9af4 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 c0eeda01..c082ef11 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 4c0c19bb..60261da7 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 d1178a21..02c162fb 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 c2531bb4..87344be6 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 fd0084af..de6004aa 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 73570feb..72ab8273 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 8ea80b46..9d22fe6a 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 5eb711b3..2cb67282 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 fb4db44c..6b49cc15 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 3a393cb2..70a53efd 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 063ffefc..a45bf320 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 12ec4900..ff1dd7f9 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 d731c53e..14860c93 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 e48c6ecd..317fcacd 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 ae50b291..621d1206 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 5713dd4f..2ca975f8 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 4752af11..49348eec 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 ab54240f..a174a747 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 b105fd05..eb61ca5b 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.