QuestPDF.Markdown
1.28.0
dotnet add package QuestPDF.Markdown --version 1.28.0
NuGet\Install-Package QuestPDF.Markdown -Version 1.28.0
<PackageReference Include="QuestPDF.Markdown" Version="1.28.0" />
paket add QuestPDF.Markdown --version 1.28.0
#r "nuget: QuestPDF.Markdown, 1.28.0"
// Install QuestPDF.Markdown as a Cake Addin #addin nuget:?package=QuestPDF.Markdown&version=1.28.0 // Install QuestPDF.Markdown as a Cake Tool #tool nuget:?package=QuestPDF.Markdown&version=1.28.0
<img src="/img/logo.svg?raw=true" width="128" align="right">
QuestPDF.Markdown
QuestPDF.Markdown allows rendering markdown into a QuestPDF document using the markdig parser.
[!IMPORTANT]
QuestPDF.Markdown is not a HTML-to-PDF conversion library and does intend to become one. It aims to use markdown to add basic user-provided content into PDFs without the pitfalls of HTML-to-PDF conversion.
Usage
var text =
@"# Hello, world!
*Greetings* from **markdown**!
> Hello, back!";
var document = Document.Create(container =>
{
container.Page(page =>
{
page.Margin(20);
page.Content().Markdown(text);
});
});
Styling the output
The styling used by QuestPDF.Markdown can be configured using MarkdownRendererOptions
.
var text = @"> Hello, world!";
var options = new MarkdownRendererOptions
{
BlockQuoteBorderColor = Colors.Red.Medium,
BlockQuoteBorderThickness = 5
};
var document = Document.Create(container =>
{
container.Page(page =>
{
page.Margin(20);
page.Content().Markdown(text, options);
});
});
Rendering images
By default, downloading and rendering external images is disabled.
Images can be downloaded using the ParsedMarkdownDocument.DownloadImages()
method.
The parsed markdown document can then be passed to the Markdown()
extension method.
var text = @"![title](https://placehold.co/100x50.jpg)";
var markdown = ParsedMarkdownDocument.FromText(text);
await markdown.DownloadImages(httpClient: myHttpClient /* Optionally provide your own HttpClient */);
var document = Document.Create(container =>
{
container.Page(page =>
{
page.Margin(20);
page.Content().Markdown(markdown, options);
});
});
What's supported?
The aim of this library is to support all basic markdown functionality and some of the extensions supported by markdig.
Currently the following features are supported:
- Headings
- Block quotes
- Code blocks
- Lists (ordered, unordered)
- Emphasis (bold, italic)
- Task lists
- Extra emphasis (subscript, superscript, strikethrough, marked, inserted)
- Tables
- Images
- HTML encoded entities (e.g.
&
,<
,>
)
Support for the following extensions is currently not planned:
- Raw HTML
- Math blocks
- Diagrams
A full sample can be found in test.md and the resulting test.pdf.
Contributing
To quickly test changes made in the library, you can make use of the excellent QuestPDF previewer in combination with the QuestPDF.Markdown.Tests project and dotnet watch
To render the test markdown file in the previewer, run the following command in the root directory of the repository:
dotnet watch test --project ./tests/QuestPDF.Markdown.Tests -- --filter Name=Render
To render the test markdown file in the previewer with additional background colors and margins, run the following command in the root directory of the repository:
dotnet watch test --project ./tests/QuestPDF.Markdown.Tests -- --filter Name=RenderDebug
Any changes made to the MarkdownRenderer class will be automatically reflected in the previewer.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
NuGet packages (1)
Showing the top 1 NuGet packages that depend on QuestPDF.Markdown:
Package | Downloads |
---|---|
Gnoe.Workflow
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.28.0 | 46 | 12/21/2024 |
1.27.0 | 476 | 12/5/2024 |
1.26.0 | 635 | 11/25/2024 |
1.25.0 | 833 | 11/11/2024 |
1.24.0 | 98 | 11/8/2024 |
1.23.1 | 168 | 10/31/2024 |
1.23.0 | 150 | 10/28/2024 |
1.22.0 | 392 | 10/7/2024 |
1.22.0-beta.1 | 53 | 9/29/2024 |
1.21.0 | 1,838 | 8/28/2024 |
1.20.3 | 286 | 8/27/2024 |
1.20.2 | 1,657 | 8/13/2024 |
1.20.1 | 841 | 8/7/2024 |
1.20.0 | 79 | 8/5/2024 |
1.19.0 | 175 | 7/25/2024 |
1.18.0 | 327 | 7/18/2024 |
1.17.0 | 378 | 7/5/2024 |
1.16.0 | 1,403 | 6/21/2024 |
1.15.0 | 17,747 | 6/12/2024 |
1.14.0 | 1,009 | 5/27/2024 |
1.13.0 | 122 | 5/24/2024 |
1.12.0 | 138 | 5/23/2024 |
1.11.1 | 209 | 5/15/2024 |
1.11.0 | 111 | 5/13/2024 |
1.10.0 | 262 | 5/6/2024 |
1.9.0 | 5,240 | 4/29/2024 |
1.8.0 | 177 | 4/22/2024 |
1.8.0-beta.4 | 73 | 4/1/2024 |
1.8.0-beta.3 | 84 | 3/27/2024 |
1.8.0-beta.2 | 66 | 3/20/2024 |
1.8.0-beta.1 | 62 | 3/2/2024 |
1.8.0-alpha | 114 | 2/20/2024 |
1.7.3 | 1,540 | 4/1/2024 |
1.7.2 | 117 | 4/1/2024 |
1.7.1 | 1,924 | 3/2/2024 |
1.7.0 | 6,579 | 2/20/2024 |
1.6.1 | 120 | 2/16/2024 |
1.6.0 | 968 | 2/7/2024 |
1.5.0 | 638 | 2/2/2024 |
1.4.0 | 810 | 12/27/2023 |
1.3.1 | 178 | 12/22/2023 |
1.3.0 | 984 | 12/8/2023 |
1.2.0 | 243 | 11/19/2023 |
1.1.0 | 1,467 | 11/15/2023 |
1.0.1 | 138 | 11/14/2023 |
1.0.0 | 190 | 11/13/2023 |
1.0.0-alpha.6 | 71 | 11/12/2023 |
1.0.0-alpha.5 | 69 | 11/12/2023 |