JetsonPDF.Writer 1.0.0

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JetsonPDF.Writer" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JetsonPDF.Writer" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="JetsonPDF.Writer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add JetsonPDF.Writer --version 1.0.0
                    
#r "nuget: JetsonPDF.Writer, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package JetsonPDF.Writer@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=JetsonPDF.Writer&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=JetsonPDF.Writer&version=1.0.0
                    
Install as a Cake Tool

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; PdfFunction Types 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, /AA triggers, /CO calculation order, signature /SV seed 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
    • /VP viewports + 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 via Save(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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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