JetsonPDF.Writer
1.0.0
See the version list below for details.
dotnet add package JetsonPDF.Writer --version 1.0.0
NuGet\Install-Package JetsonPDF.Writer -Version 1.0.0
<PackageReference Include="JetsonPDF.Writer" Version="1.0.0" />
<PackageVersion Include="JetsonPDF.Writer" Version="1.0.0" />
<PackageReference Include="JetsonPDF.Writer" />
paket add JetsonPDF.Writer --version 1.0.0
#r "nuget: JetsonPDF.Writer, 1.0.0"
#:package JetsonPDF.Writer@1.0.0
#addin nuget:?package=JetsonPDF.Writer&version=1.0.0
#tool nuget:?package=JetsonPDF.Writer&version=1.0.0
JetsonPDF.Writer
The low-level PDF authoring API. Builds PDF documents from scratch, byte by
byte, following ISO 32000-2 (PDF 2.0). Headless, pure net8.0, no native
deps.
using JetsonPDF;
var doc = new Document
{
Title = "Hello",
Author = "Me",
};
var page = doc.AddPage(PageSize.Letter);
page.DrawText("Hello, world!", new Font(FontFamily.Helvetica, 24), x: 72, y: 720);
page.DrawRectangle(72, 600, 200, 80, stroke: Color.Black, fill: Color.RedLight);
doc.Save("hello.pdf");
Save has three overloads: Save(string path), Save(Stream), and a
parameterless byte[] Save() for serializing entirely in memory.
If you'd rather think in containers and decorators than in raw page operators, look at JetsonPDF.Fluent (QuestPDF-style) or JetsonPDF.Flow (Word-like retained DOM) — both layer on top of this writer.
What's covered
- Page content: text, vector paths (move/line/curve/close + fill rules),
raster images (PNG with alpha + Adam7 + ICC, JPEG, JBIG2, CCITT G3/G4,
inline images, image masks), Form XObjects, tiling and shading patterns
(axial, radial, function-based, Coons + tensor patches), clipping,
graphics state, transforms (
PushGraphicsState/PopGraphicsState/Transform). - Color: Device + CIE-based (CalGray, CalRGB, Lab), ICC, Indexed,
Separation, DeviceN / NChannel;
PdfFunctionTypes 0/2/3/4 (sampled + PostScript). - Fonts: standard 14 (with Adobe Core 14 AFM metrics), TrueType / OpenType
embedding with subsetting, CID composite (Identity-H), CFF subsetting on
write, Type 3 procedural fonts with
/ToUnicode. - Annotations: Link, Highlight / Underline / StrikeOut / Squiggly,
FreeText, Stamp, Caret, FileAttachment + embedded files (Factur-X /
associated files via
/AF), Popup, Sound, Redact, Line / Polygon / PolyLine, Ink. - Forms: AcroForm — Tx / Btn / Ch / Sig / barcode widgets,
/AAtriggers,/COcalculation order, signature/SVseed values,/Lock, DocMDP / FieldMDP transforms, DocTimeStamp incremental (/ETSI.RFC3161), DSS / VRI for PAdES B-LTA. - Encryption: standard handler — RC4-40, RC4-128, AES-128, AES-256.
- Document metadata: outlines, page labels, named destinations, viewer
preferences, page layout / mode, OpenAction, OCG / layers, structure tree
(real nested elements + role / class maps +
/AF+ OBJR refs),/Measure/VPviewports + coordinate systems, PieceInfo.
- Conformance declarations: PDF/A-1b, PDF/A-2/3 (a/u/b variants),
PDF/UA-1, PDF/UA-2 — sets the right XMP namespaces and catalog flags.
Optional validation via
doc.Validate(); opt-in strict mode viaSave(throwOnConformanceError: true). - Post-processing: linearization (Annex F fast-web-view layout with proper Page Offset + Shared Object hint tables), incremental updates, digital signatures (PKCS#7 detached, invisible).
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 (>= 1.0.0)
- JetsonPDF.Reader (>= 1.0.0)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Security.Cryptography.Pkcs (>= 8.0.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.0
- JetsonPDF.Common (>= 1.0.0)
- JetsonPDF.Reader (>= 1.0.0)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Security.Cryptography.Pkcs (>= 8.0.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
-
net8.0
- JetsonPDF.Common (>= 1.0.0)
- JetsonPDF.Reader (>= 1.0.0)
- System.Security.Cryptography.Pkcs (>= 8.0.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on JetsonPDF.Writer:
| Package | Downloads |
|---|---|
|
JetsonPDF.XamlToPdfConverter.Core
Runtime-neutral core for the XAML-to-PDF authoring pipeline. Owns the snapshot model, PDF emission, pagination, font/Std14 mapping, and path/geometry flattening. Consumed by the WPF and OpenSilver tree-walker adapters. |
|
|
JetsonPDF.Fluent
Headless, code-first fluent API for building PDFs with JetsonPDF — QuestPDF-style containers, auto-pagination, dynamic page numbers. |
|
|
JetsonPDF.Flow
Word-like retained-mode DOM (Section / Paragraph / Run / Table) with auto-pagination, layered on JetsonPDF.Fluent. |
|
|
JetsonPDF.Wpf
WPF integration for JetsonPDF. Bundles the XAML-to-PDF authoring pipeline (xmlns:jetsonpdf="http://schemas.jetsonpdf.com/authoring/2025" dialect, driven by real WPF Measure/Arrange) and the PDF-to-XAML viewer-emitter (turns a parsed ReadDocument into WPF XAML that XamlReader.Parse renders directly). Authoring types live under JetsonPDF.Wpf.Authoring; viewer/markup types live under JetsonPDF.Wpf. Windows-only (net8.0-windows + WPF). |
|
|
JetsonPDF.OpenSilver
OpenSilver integration for JetsonPDF. Bundles both directions of the XAML pipeline. Authoring (XAML→PDF): the same xmlns:jetsonpdf="http://schemas.jetsonpdf.com/authoring/2025" dialect as the WPF integration, driven by the OpenSilver runtime so the same XAML compiles to a PDF from inside a WebAssembly app, an Edge WebView2 simulator, or a Playwright-driven Chromium CLI. Viewer (PDF→XAML): emits XAML that OpenSilver's XamlReader.Load renders in the browser — text via vector paths (no font cache), images via base64 data URIs, AcroForm widgets as live OpenSilver controls. Walker + image encoder + widget-action dispatch are OpenSilver-specific; emission code, snapshot model, and PDF emission are shared with the WPF flavour. Authoring types live under JetsonPDF.OpenSilver.Authoring; viewer/markup types under JetsonPDF.OpenSilver. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0 | 356 | 6/6/2026 |
| 1.0.0 | 330 | 5/23/2026 |
| 0.2.0-preview | 328 | 5/23/2026 |
| 0.1.0-preview | 324 | 5/17/2026 |