ShinyPDF 1.0.0
dotnet add package ShinyPDF --version 1.0.0
NuGet\Install-Package ShinyPDF -Version 1.0.0
<PackageReference Include="ShinyPDF" Version="1.0.0" />
<PackageVersion Include="ShinyPDF" Version="1.0.0" />
<PackageReference Include="ShinyPDF" />
paket add ShinyPDF --version 1.0.0
#r "nuget: ShinyPDF, 1.0.0"
#:package ShinyPDF@1.0.0
#addin nuget:?package=ShinyPDF&version=1.0.0
#tool nuget:?package=ShinyPDF&version=1.0.0
<img src="https://raw.githubusercontent.com/LM-Development/ShinyPDF/main/docs/img/logo.svg" height="25" /> ShinyPDF
ShinyPDF is a modern open-source .NET library for PDF document generation. Offering comprehensive layout engine powered by concise and discoverable C# Fluent API. Shiny PDF is based on the latest fully open source version of QuestPDF.
👨💻 Build production-ready PDFs in pure C# with a code-first workflow that fits naturally into your existing development process.
🧱 Compose rich layouts with predictable building blocks: text, images, borders, tables, layers, headers, footers, and more.
⚙️ Rely on a layout engine purpose-built for document generation, with robust paging, measurement, and rendering behavior.
📖 Stay productive with a concise Fluent API and full IntelliSense discoverability across the entire document DSL.
🔗 No proprietary template language. Use modern .NET features, reusable abstractions, and the tools you already trust.
Simplicity is the key
How easy it is to start and prototype with ShinyPDF? Really easy thanks to its minimal API! Please analyse the code below that generates basic PDF document:
using ShinyPDF.Fluent;
using ShinyPDF.Helpers;
using ShinyPDF.Infrastructure;
// code in your main method
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.Background(Colors.White);
page.DefaultTextStyle(x => x.FontSize(20));
page.Header()
.Text("Hello PDF!")
.SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);
page.Content()
.PaddingVertical(1, Unit.Centimetre)
.Column(x =>
{
x.Spacing(20);
x.Item().Text(Placeholders.LoremIpsum());
x.Item().Image(Placeholders.Image(200, 100));
});
page.Footer()
.AlignCenter()
.Text(x =>
{
x.Span("Page ");
x.CurrentPageNumber();
});
});
})
.GeneratePdf("hello.pdf");
Let's get started
Begin exploring the ShinyPDF library today.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- HarfBuzzSharp.NativeAssets.Linux (>= 8.3.1.1)
- SkiaSharp (>= 3.119.0)
- SkiaSharp.HarfBuzz (>= 3.119.0)
- SkiaSharp.NativeAssets.Linux (>= 3.119.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 104 | 4/15/2026 |
### Bug Fixes
* address nullability issues ([4600a84](https://github.com/LM-Development/ShinyPDF/commit/4600a84093e2edaae7fa3e231a9f6b417f0bd391))
* test using old name ([f1ff9c9](https://github.com/LM-Development/ShinyPDF/commit/f1ff9c983ad7813ffbc6fe6b6d895f469bd5a398))
* typos and old names ([85792ec](https://github.com/LM-Development/ShinyPDF/commit/85792ec736c960dd8080e226b944fc6f2914e5bf))
### Features
* update logos ([f1a59e9](https://github.com/LM-Development/ShinyPDF/commit/f1a59e9a52c3edd24444bd34a2035a4ff535930d)), closes [#13](https://github.com/LM-Development/ShinyPDF/issues/13)
### Reverts
* Revert "Building QuestPDF Previewer for dotnet 7" ([e6c7bef](https://github.com/LM-Development/ShinyPDF/commit/e6c7befac4564505eb42db4f43c6ae37746c54a7))
* Revert "Update dotnet-desktop.yml" ([be3e4b5](https://github.com/LM-Development/ShinyPDF/commit/be3e4b59ec5a2350172174feeb1c5bbd94e9b9c4))