JetsonPDF.Flow
0.2.0-preview
See the version list below for details.
dotnet add package JetsonPDF.Flow --version 0.2.0-preview
NuGet\Install-Package JetsonPDF.Flow -Version 0.2.0-preview
<PackageReference Include="JetsonPDF.Flow" Version="0.2.0-preview" />
<PackageVersion Include="JetsonPDF.Flow" Version="0.2.0-preview" />
<PackageReference Include="JetsonPDF.Flow" />
paket add JetsonPDF.Flow --version 0.2.0-preview
#r "nuget: JetsonPDF.Flow, 0.2.0-preview"
#:package JetsonPDF.Flow@0.2.0-preview
#addin nuget:?package=JetsonPDF.Flow&version=0.2.0-preview&prerelease
#tool nuget:?package=JetsonPDF.Flow&version=0.2.0-preview&prerelease
JetsonPDF.Flow
A Word-like, retained-mode document model that renders to PDF via JetsonPDF.
If JetsonPDF.Fluent is QuestPDF's idiom (immediate-mode, build-then-render
container chain), JetsonPDF.Flow is the other end of the spectrum: a
mutable POCO tree of FlowDocument → Section → Paragraph → Run,
plus tables, images, and explicit page breaks. Edit the tree in place,
then Save.
using JetsonPDF.Flow;
using JetsonPDF.Flow.Blocks;
using JetsonPDF.Flow.Runs;
var doc = new FlowDocument();
var section = doc.Sections.Add();
section.PageSize = JetsonPDF.PageSize.Letter;
section.Margins = new Margins(72, 72, 72, 72);
section.Blocks.Add(new Paragraph
{
Style = ParagraphStyle.Heading1,
Runs = { new TextRun("Quarterly Report") },
});
var body = new Paragraph();
body.Runs.Add(new TextRun("Revenue grew "));
body.Runs.Add(new TextRun("12.4%") { Properties = { Bold = true } });
body.Runs.Add(new TextRun(" year-over-year."));
section.Blocks.Add(body);
doc.Save("report.pdf");
Save overloads: Save(string path), Save(Stream), and a parameterless
byte[] Save() for in-memory serialization.
What you get
- Auto-pagination at paragraph, line, and table-row boundaries.
KeepWithNext,KeepLinesTogether,PageBreakBeforefor fine-grained pagination control.- Sections with their own page size, margins, and headers / footers.
- Tables with column widths, header rows, and cell-level paragraphs.
- Lists — bullet, decimal, lowercase / uppercase alpha, lowercase /
uppercase Roman — via
ListMarkeron a paragraph. - Drop caps, tab stops, named styles +
StylePresetsfor consistent typography. - Anchored images with text wrapping.
- Headers and footers per section, with page-number / total-pages placeholders.
- Hyphenation via the included Liang-style dictionary.
When to pick Flow over Fluent
- You want a document tree you can edit, serialize, or generate from a template — Flow is a data structure first, render target second.
- Your input shape is closer to "paragraphs of runs" than to "rows of cells in a layout grid".
- You need Word-style flow features (KeepWithNext, drop caps, anchored images with wrap) without writing pagination logic yourself.
For invoices, dashboards, and forms that are layout-driven, prefer
JetsonPDF.Fluent.
Targets
net8.0
License
MIT.
| 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- JetsonPDF.Common (>= 0.2.0-preview)
- JetsonPDF.Fluent (>= 0.2.0-preview)
- JetsonPDF.Writer (>= 0.2.0-preview)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.0
- JetsonPDF.Common (>= 0.2.0-preview)
- JetsonPDF.Fluent (>= 0.2.0-preview)
- JetsonPDF.Writer (>= 0.2.0-preview)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
-
net8.0
- JetsonPDF.Common (>= 0.2.0-preview)
- JetsonPDF.Fluent (>= 0.2.0-preview)
- JetsonPDF.Writer (>= 0.2.0-preview)
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.1.0 | 132 | 6/6/2026 |
| 1.0.0 | 114 | 5/23/2026 |
| 0.2.0-preview | 102 | 5/23/2026 |
| 0.1.0-preview | 102 | 5/17/2026 |