Andy.Doc.Pdf
2026.10.18-rc.1
dotnet add package Andy.Doc.Pdf --version 2026.10.18-rc.1
NuGet\Install-Package Andy.Doc.Pdf -Version 2026.10.18-rc.1
<PackageReference Include="Andy.Doc.Pdf" Version="2026.10.18-rc.1" />
<PackageVersion Include="Andy.Doc.Pdf" Version="2026.10.18-rc.1" />
<PackageReference Include="Andy.Doc.Pdf" />
paket add Andy.Doc.Pdf --version 2026.10.18-rc.1
#r "nuget: Andy.Doc.Pdf, 2026.10.18-rc.1"
#:package Andy.Doc.Pdf@2026.10.18-rc.1
#addin nuget:?package=Andy.Doc.Pdf&version=2026.10.18-rc.1&prerelease
#tool nuget:?package=Andy.Doc.Pdf&version=2026.10.18-rc.1&prerelease
Andy.Doc - .NET PDF Library
A .NET 10+ PDF engine with managed document processing and native SkiaSharp image codecs/rendering with feature parity to major commercial libraries.
Project Goals
Andy.Doc aims to build a comprehensive PDF library without any external executables (no Ghostscript, no browser engines). The library provides:
- Document Object Model (DOM) - Rich in-memory document representation
- Layout Engine - Measure/arrange pipeline with pagination and styling
- PDF Core - Low-level PDF reading and writing
- Document Operations - Create, load, save, merge, split PDFs
- Forms & Annotations - AcroForms and interactive elements
- Security - Encryption, permissions, and digital signatures
- Standards Compliance - PDF/A support and accessibility features
- Content Extraction - Text and image extraction, search capabilities
- Rendering - PDF to bitmap conversion
- HTML Import - Convert HTML to PDF using internal layout engine
Architecture
The library is organized into several focused assemblies:
- Andy.Doc.Core - DOM, layout system, and shared abstractions
- Andy.Doc.Pdf - PDF writer and reader implementation
- Andy.Doc.Import.Html - HTML to PDF conversion (optional add-on)
- Andy.Doc.Tests - Unit and integration tests
- Andy.Doc.Benchmarks - Performance benchmarks
- Andy.Doc.Samples - Example applications
Supported Platforms
Andy.Doc targets .NET 10.0 and is tested on the following platforms:
- Windows - Windows Server 2019+, Windows 10+, Windows 11
- Linux - Ubuntu 20.04+, Debian 11+, RHEL 8+, and other modern distributions
- macOS - macOS 12 (Monterey) and later
Runtime Versions
- Target Framework: .NET 10.0
- Minimum .NET SDK: 10.0.100
- Language Version: C# 12
The library may work on other platforms supported by .NET 10, but the above are officially tested in CI.
Status
This project is in active development. See the project roadmap for current progress.
Current Implementation Status
✅ Completed (Issues #1-26)
- Document Object Model (DOM) with fluent API
- Layout engine with measure/arrange pipeline
- Text styling (decorations, line spacing, letter spacing)
- Lists (ordered, unordered, nested, custom markers)
- Tables (borders, columns, cell content)
- PDF generation (low-level objects, content streams, document structure)
- PDF rendering (paragraphs, lists, tables with proper margins)
- 697 passing tests
🚧 In Progress (Issue #27+)
- Image support (XObjects, JPEG/PNG embedding)
- Additional features per roadmap
Getting Started
Trying the Samples
The quickest way to see Andy.Doc in action is to run the comprehensive samples:
cd samples/Andy.Doc.Samples
dotnet run
This generates 7 PDF files demonstrating all features:
- Text styling and decorations
- Line and letter spacing
- Lists with markers and nesting
- Tables with borders and columns
- Complete business proposal
See samples/Andy.Doc.Samples/README.md for details.
Building from Source
Requires .NET 10.0 SDK or later.
dotnet build
dotnet test
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Contributing
We welcome contributions! Please see our Contributing Guide for details on:
- How to report issues
- How to submit pull requests
- Coding standards and guidelines
- Development setup
Please also read our Code of Conduct before participating.
For security vulnerabilities, please see our Security Policy.
Image codecs and native runtime
Andy.Doc.Pdf 2026.10.18-rc.1 removes ImageSharp. Image decoding and rendering use SkiaSharp 4.153.1 with matching Linux native assets; retain SkiaSharp notices when redistributing. Linux hosts need the Skia native runtime and fontconfig. The public Andy.Doc API remains unchanged. Input decoding checks encoded byte and actual image dimension limits before allocating pixels. Images retain grayscale, straight alpha/soft masks, and PDF CMYK handling.
This migration follows the qualified Rivoli PDF change, adapted to the existing Andy API. See third-party notices, issue551, and RB-601.
| 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
- Andy.Doc.Core (>= 2026.10.18-rc.1)
- CSJ2K (>= 3.0.0)
- SkiaSharp (>= 4.153.1)
- SkiaSharp.NativeAssets.Linux (>= 4.153.1)
- System.Security.Cryptography.Pkcs (>= 10.0.13)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Andy.Doc.Pdf:
| Package | Downloads |
|---|---|
|
Andy.Tools.Pdf
PDF document tools for the Andy.Tools framework (pdf_*). Reads PDFs and exposes text extraction, reading-order reflow, table extraction, outline (bookmark) navigation, document info, and full-text search over the Andy.Doc engine with native SkiaSharp image decoding. Designed for understanding financial documents such as 10-K filings and earnings-call transcripts. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.10.18-rc.1 | 79 | 10/18/2026 |
| 2026.8.8-rc.1 | 90 | 9/8/2026 |
| 2026.7.21-rc.1 | 1,010 | 7/21/2026 |
| 2026.6.22-rc.1 | 204 | 6/27/2026 |