VellumPdf.Layout
2.2.0
dotnet add package VellumPdf.Layout --version 2.2.0
NuGet\Install-Package VellumPdf.Layout -Version 2.2.0
<PackageReference Include="VellumPdf.Layout" Version="2.2.0" />
<PackageVersion Include="VellumPdf.Layout" Version="2.2.0" />
<PackageReference Include="VellumPdf.Layout" />
paket add VellumPdf.Layout --version 2.2.0
#r "nuget: VellumPdf.Layout, 2.2.0"
#:package VellumPdf.Layout@2.2.0
#addin nuget:?package=VellumPdf.Layout&version=2.2.0
#tool nuget:?package=VellumPdf.Layout&version=2.2.0
VellumPdf.Layout
The high-level document builder of VellumPdf, a dependency-free PDF library for .NET 10 implemented clean-room from ISO 32000. It pulls in VellumPdf.Kernel, so for most applications this is the only package you need to add.
- Paragraphs, headings, lists, tables, images, pie charts, header/footer bands, and bookmarks.
- Automatic pagination and tagged content for accessible, archival output.
- PDF/A-2b/2u/2a conformance, CI-validated with veraPDF.
Install
dotnet add package VellumPdf.Layout
Usage
using VellumPdf.Fonts; // Standard14
using VellumPdf.Layout; // Document
using VellumPdf.Layout.Core; // TextStyle
using VellumPdf.Layout.Elements; // Heading, Paragraph
using var doc = new Document();
doc.SetDefaultFont(new TextStyle { Font = Standard14.Helvetica, FontSize = 11 });
doc.Add(new Heading("Hello, world!"));
doc.Add(new Paragraph("Generated with VellumPdf — no native dependencies."));
doc.Save("hello.pdf");
Need precise, low-level drawing instead? Use the VellumPdf.Kernel canvas directly.
Documentation
Quick start and examples: https://github.com/Tim81/VellumPDF#quick-start
The VellumPdf family
| Package | Status | Summary |
|---|---|---|
| VellumPdf.Kernel | 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 (this package) | 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. |
| 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
| Milestone | Scope |
|---|---|
| 2.0 — Breaking changes | Strong-named assemblies (#53), an async I/O surface for Save/Sign/loaders (#54), and an external-signer API for cloud KMS and remote HSM signing (#165). Each changes assembly identity or the public contract, so they waited for a major version. |
| 2.1 — PDF reader (structural) | VellumPdf.Reader reads classic tables, cross-reference and object streams, and hybrid-reference files, and opens encrypted documents given their password (#97) — the Standard security handler at /V 1, 2, 4 and 5, proven against a committed fixture corpus and third-party files (Epic #100). |
| 2.2 — Encryption and parser hardening (this release) | An empty owner password no longer produces a document anyone opens at owner privilege (#211), and building a very large dictionary is no longer quadratic on the path that runs before a password is checked (#208). Carries a documented breaking change, so it is a minor rather than a patch release. |
| 2.3 — PDF content extraction | Text and image extraction on top of the reader. Writing a decrypted copy (#186), reader fuzzing (#99), and graduating VellumPdf.Reader from Preview (#187) ride along. |
| 2.4 — PDF/A-1 profile | A full PDF/A-1 (ISO 19005-1) rule set, which unblocks recursive validation of embedded PDF/A-1 files (#140). |
| 3.0 — Read-modify-write | A unified round-trip document model that supersedes the write-once PdfDocument, so existing PDFs can be opened, edited, and saved back (Epic #101). |
License
Apache-2.0. Source and issues: https://github.com/Tim81/VellumPDF
| 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
- VellumPdf.Kernel (>= 2.2.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on VellumPdf.Layout:
| Package | Downloads |
|---|---|
|
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.Barcodes
Optional barcode add-on for VellumPdf: QR (incl. GS1-mode QR and GS1 Digital Link), Micro QR, PDF417, Code 128 (incl. GS1-128), Code 39, EAN-13/EAN-8/UPC-A/UPC-E with EAN-2/EAN-5 add-ons, ITF-14, Data Matrix (incl. GS1 Data Matrix), and Aztec Code, rendered as vector rectangles over VellumPdf.Kernel.PdfCanvas and VellumPdf.Layout.Document. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.2.0 | 44 | 8/28/2026 |
| 2.1.0 | 50 | 8/28/2026 |
| 2.0.0 | 144 | 8/17/2026 |
| 1.11.0 | 732 | 7/11/2026 |
| 1.10.0 | 1,374 | 7/7/2026 |
| 1.9.0 | 659 | 7/6/2026 |
| 1.8.2 | 133 | 7/5/2026 |
| 1.8.1 | 136 | 7/3/2026 |
| 1.8.0 | 114 | 7/3/2026 |
| 1.7.8 | 127 | 7/3/2026 |
| 1.7.7 | 127 | 7/2/2026 |
| 1.7.6 | 137 | 6/28/2026 |
| 1.7.5 | 153 | 6/23/2026 |
| 1.7.4 | 139 | 6/23/2026 |
| 1.7.3 | 130 | 6/22/2026 |
| 1.7.2 | 141 | 6/22/2026 |
| 1.7.1 | 140 | 6/21/2026 |
| 1.7.0 | 138 | 6/21/2026 |
| 1.6.0 | 157 | 6/17/2026 |
| 1.5.6 | 159 | 6/16/2026 |
See https://github.com/Tim81/VellumPDF/blob/main/CHANGELOG.md for release notes.