VellumPdf.Kernel 2.3.3

dotnet add package VellumPdf.Kernel --version 2.3.3
                    
NuGet\Install-Package VellumPdf.Kernel -Version 2.3.3
                    
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="VellumPdf.Kernel" Version="2.3.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VellumPdf.Kernel" Version="2.3.3" />
                    
Directory.Packages.props
<PackageReference Include="VellumPdf.Kernel" />
                    
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 VellumPdf.Kernel --version 2.3.3
                    
#r "nuget: VellumPdf.Kernel, 2.3.3"
                    
#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 VellumPdf.Kernel@2.3.3
                    
#: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=VellumPdf.Kernel&version=2.3.3
                    
Install as a Cake Addin
#tool nuget:?package=VellumPdf.Kernel&version=2.3.3
                    
Install as a Cake Tool

VellumPdf.Kernel

NuGet CI

The low-level PDF generation kernel of VellumPdf, a dependency-free PDF library for .NET 10 implemented clean-room from ISO 32000. This is the object model and content-stream writer everything else builds on. It has zero runtime dependencies and is AOT- and trim-ready.

  • A PdfCanvas for precise drawing: text, paths, images, colour, and graphics state.
  • Fonts: the built-in Standard-14 faces plus TrueType and OpenType-CFF embedding and subsetting, with ToUnicode maps so text stays searchable and copy-paste-able.
  • Images: JPEG, PNG, BMP, GIF, TIFF, JBIG2, and JPEG 2000.
  • AES-256 encryption, object and cross-reference streams, AcroForm fields, a tagged-PDF structure tree, PDF/A-2 metadata, DeviceCMYK and ICC colour with output intents, and opt-in linearization.

Install

dotnet add package VellumPdf.Kernel

Usage

using VellumPdf.Canvas;    // PdfCanvas
using VellumPdf.Document;  // PdfDocument, PageSize
using VellumPdf.Fonts;     // Standard14

using var doc = new PdfDocument();
var page = doc.AddPage(PageSize.A4);
var font = doc.UseFont(Standard14.Helvetica);
var canvas = new PdfCanvas(page);

canvas
    .BeginText()
    .SetFont(font, 12)
    .SetTextMatrix(1, 0, 0, 1, 72, 720)
    .ShowText("Hello from the Kernel API!")
    .EndText();

canvas.Finish();

using var stream = File.OpenWrite("kernel-hello.pdf");
doc.Save(stream);

For most documents the high-level VellumPdf.Layout builder is easier; reach for the Kernel when you need direct control of the content stream.

Documentation

Kernel walkthrough: https://github.com/Tim81/VellumPDF/blob/main/docs/kernel-guide.md

The VellumPdf family

Package Status Summary
VellumPdf.Kernel (this package) Stable Low-level PDF object model, canvas, fonts, images, encryption.
VellumPdf.Fonts.Standard14 Stable Embeddable standard-14 font substitutes for PDF/A text.
VellumPdf.Layout Stable High-level document builder: paragraphs, tables, images, pagination.
VellumPdf.Signing Stable PAdES / PKCS#7 digital signatures with timestamps and LTV.
VellumPdf.Reader Preview Opens existing PDFs, encrypted ones given their password; exposes catalog and signatures; writes a decrypted copy with configurable resource limits.
VellumPdf.Conformance Stable In-process PDF/A and PDF/UA preflight validation.
VellumPdf.Cli Stable vellum-preflight command-line PDF/A and PDF/UA validator.
VellumPdf.Barcodes Stable QR, Data Matrix, Aztec, PDF417, Code 128/GS1-128, Code 39, EAN/UPC, and ITF-14 as vectors.

Roadmap

Planned direction, tracked as GitHub milestones. These are scopes, not commitments — the milestones carry no due dates. 2.3.3 is the latest published release.

Scope past 2.5 runs as two parallel tracks, because auditing the layout engine turned up more work than the PDF 2.0 conformance gap did. Both ship from the same version numbers.

Kernel and conformance

Milestone Scope
2.3 — Reader robustness (released) Cross-reference reconstruction for damaged files (#184), a decrypted-copy writer (#186), the /XRefStm precedence decision (#206), reader fuzzing (#99), and the CI and oracle debt that makes all of it verifiable.
2.4 — PDF content extraction Text and image extraction on top of the reader (#98), and graduating VellumPdf.Reader from Preview (#187).
2.5 — PDF/A-4 and PDF/A-1 profiles PDF/A-4 (#222) so conformance output stops downgrading to %PDF-1.7, PDF/A-1 (#218), and dropping the keys ISO 32000-2 deprecates (#325).
2.6 — ISO/TS extensions to PDF 2.0 The four Technical Specifications that amend PDF 2.0: AES-GCM (#236), PDF MAC integrity (#237), SHA-3 (#238) and EdDSA (#239). The reader currently rejects every AES-GCM file, so this closes an interoperability bug as well as adding features.
2.7 — Embedded files and associated files Attachments, the /Names tree, the missing annotation subtypes, and ISO 32000-2 §14.13 associated files. Unblocks PDF/A-4F.
2.8 — Colour and paint PDF functions, the full shading model, tiling and shading patterns, and the colour spaces beyond the device ones and ICCBased.
2.9 — Rendering and resources Transparency and blend modes, the complete ExtGState, form XObjects, inline images, optional content, and the page boundary boxes.
2.10 — Font completeness Type 1, bare CFF, simple TrueType and Type 3 fonts; predefined CMaps and vertical writing; kerning; and enforcing the fsType embedding permission the library currently parses and ignores.
2.11 — Tagged PDF 2.0 writer Structure namespaces, structure destinations, and the ISO/TS 32005 containment matrix.
2.12 — PDF/UA-2 and WTPDF The ua2, wt1a and wt1r rule sets.
2.13 — Signature verification Verifying signatures, not only producing them: integrity, coverage, chains, revocation and achieved PAdES level.

Layout

Milestone Scope
Layout A — Foundations Sections, a containment model, inline runs in every element, a unit type, named styles, renderer extensibility, and fixing a defect where an element spanning a page break emits two structure elements instead of one.
Layout B — Accessibility structure The PDF/UA-2 element set, generated contents and indexes, captions, table header semantics, footnotes and endnotes, automatic numbering, tab stops with leaders, and internal links.
Layout C — Forms and semantics Form elements that carry their own labels, ListNumbering fidelity, artifact property lists, and build-time accessibility diagnostics.
Layout D — Typography Text decoration, optimal line breaking, widow and orphan control, hyphenation and floats, cell borders, and inline content such as images in a line of text.
Layout E — Composition Composite elements and templates, page breaks, anchoring and rotation, page backgrounds, running bands that hold more than a single string, and prepress bleed and printer marks.
Layout F — Advanced layout Multi-column flow, nested tables, a chart family, streaming generation, and the SVG import epic.
Layout G — International text Unicode bidi and right-to-left, vertical and CJK writing, and the complex-script shaping epic.

Editing existing documents. The only breaking milestone is 3.0.

Milestone Scope
3.0 — Round-trip document model A new round-trip type alongside the write-once PdfDocument, a memory-mapped backing store, and the new VellumPdf.Editing package (Epic #101).
3.1 — Sign and fill existing documents Signing a PDF this library did not write, and filling its form fields. Neither is possible today.
3.2 — Append-only content edits Annotations, metadata, watermarks, attachments, and appending flowed content.
3.3 — Full-rewrite operations Revision-history discard, re-encryption, and signature removal.
3.4 — Structural editing Page operations, merge and split, optimise and sanitise.
3.5 — Redaction Marking regions and applying them. Deliberately isolated: marking alone is not redaction.
3.6 — Content editing Reflowing text edits, and structure-tree round-trip editing of tagged documents.

What this library implements of ISO 32000-2 today is inventoried, reference by reference, in PDF 2.0 conformance. It emits a %PDF-2.0 header, which is not the same as conformance, and the table says which is which. The Reader guide and Layout guide each carry a capability table doing the same job for their own package, checked against the code and test suite rather than against this roadmap.

VellumPdf.Reader is marked Preview in the table above; expect its public surface to settle as these milestones land. VellumPdf.Conformance graduated to Stable in 2.0.

License

Apache-2.0. Source and issues: https://github.com/Tim81/VellumPDF

The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated. GIF(sm) is a Service Mark property of CompuServe Incorporated. This package reads and writes GIF under the royalty-free licence granted in the GIF89a specification, which requires acknowledging that ownership and offers this wording for it. The NOTICE file shipped in this package carries the full text, alongside every other attribution this product owes.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on VellumPdf.Kernel:

Package Downloads
VellumPdf.Layout

High-level document and layout engine for VellumPdf: paragraphs, lists, tables, images, automatic pagination, and tagged-content support. Implemented solely from the ISO 32000 standard.

VellumPdf.Fonts.Standard14

Optional metric-compatible, embeddable substitutes for the PDF standard-14 fonts, so VellumPdf can produce conformant (fully embedded) PDF/A text without a caller-supplied font program. Bundles the Liberation fonts (Sans/Serif/Mono, SIL OFL 1.1) covering the Helvetica, Times and Courier families. Adds the doc.EmbedStandard14Font(...) extension.

VellumPdf.Signing

Optional digital-signature add-on for VellumPdf: PAdES/PKCS#7 detached CMS signatures over VellumPdf.Kernel.PdfDocument and VellumPdf.Layout.Document. References System.Security.Cryptography.Pkcs; keeps the core zero-dependency.

VellumPdf.Reader

PDF reader for VellumPdf: opens an existing PDF (classic cross-reference tables, cross-reference and object streams, hybrid-reference files, and encrypted documents given their password) and exposes its catalog and digital signatures, on a bounds-checked lexer and object parser (ISO 32000-2 §7.2–7.5). BCL-only; zero runtime dependencies. The foundation for PAdES long-term validation and a growing general reader; image extraction is supported and text extraction is in progress.

VellumPdf.Conformance

In-process PDF/A and PDF/UA preflight validation for VellumPdf: opens a PDF through VellumPdf.Reader and runs a registry of clean-room conformance rules authored from the ISO specifications, returning machine-readable assertions (rule id, ISO clause, severity, object reference). No external veraPDF Docker image required. BCL-only, AOT- and trim-ready; rules are registered explicitly with no reflection. Covers PDF/A-2b/2u/2a and PDF/UA-1, cross-validated against veraPDF in CI on both paths of every rule.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.3.3 212 9/20/2026
2.3.2 203 9/12/2026
2.3.1 159 9/10/2026
2.3.0 179 9/1/2026
2.2.0 156 8/28/2026
2.1.0 164 8/28/2026
2.0.0 287 8/17/2026
1.11.0 828 7/11/2026
1.10.0 1,985 7/7/2026
1.9.0 700 7/6/2026
1.8.2 178 7/5/2026
1.8.1 184 7/3/2026
1.8.0 166 7/3/2026
1.7.8 172 7/3/2026
1.7.7 178 7/2/2026
1.7.6 191 6/28/2026
1.7.5 192 6/23/2026
1.7.4 180 6/23/2026
1.7.3 189 6/22/2026
1.7.2 180 6/22/2026
Loading failed