Skip to main content

AdCodicem.Pdf

A managed PDF toolkit for .NET 10: generate documents from HTML, and read, assemble and transform existing ones — with no headless browser, no native PDF engine and no external process.

dotnet add package AdCodicem.Pdf # the latest stable release
dotnet add package AdCodicem.Pdf --prerelease # the latest preview, built from main

This documentation follows the version selected at the top of the page: each stable line has its own, and whenever main has moved past the latest release, the Preview button shows what is on it.

Before 1.0

The reader is built and tested, and validation is being built; writing, assembly and the HTML engine are ahead, and any minor version may still change the API. The roadmap says what exists and what does not, and status says where the work actually stands today.

A preview carries no guarantee at all. Its API, its behavior and any of its features may change or disappear in the next preview, without notice and without a deprecation period; compatibility promises hold between stable releases only. If you depend on a preview, pin its exact version.

Disclaimer

AdCodicem.Pdf is provided "as is", without warranty of any kind, express or implied. To the maximum extent permitted by applicable law, the authors, contributors and copyright holders are not liable for any claim, damage or loss arising from the use of the library, of this documentation or of the documents it reads, produces or modifies. The MIT license is the governing text.

Every document the library produces or modifies is yours to verify before you rely on it, file it, sign it or send it. Conformance to PDF/A, PDF/UA or Factur-X is an aim, and the validator's report is not a certification; check that redacted content is actually gone; the legal validity of a signature depends on your jurisdiction and your trust services. Nothing in this project is legal, tax or compliance advice.

How this documentation is organized​

It follows Diátaxis: each page is written for one need, and sits in the section for that need.

SectionFor when you want toStart with
TutorialsLearn the library by using it, one step at a timeOpen, inspect and validate a PDF
How-to guidesGet a task done that you already have in mindValidate a document before accepting it
ReferenceLook up a code, a rule, a limit or a type while you workDiagnostics, Validation rules, the API reference
ExplanationUnderstand why the library works the way it doesLazy reading

New to the library? The tutorial opens, repairs and validates a document in about fifteen minutes, with nothing to download but the package.

Why another PDF library​

Most .NET options force a trade-off. Browser-based converters give perfect fidelity but cost hundreds of megabytes of memory per instance and a browser to deploy. In-memory object models are simple but load an entire document into the heap, so a 500 MB file needs 500 MB of RAM before you have done anything with it.

This library takes the middle ground business documents actually need: a fully managed engine whose memory use follows the complexity of a page rather than the size of a file.

Indexing a thousand-page document costs 229 µs and 393 KB. Reading every page of it afterwards costs 6.2 ms and 5.9 MB. The gap between those two numbers is the whole design: opening a document does not read its content.

Design commitments​

  • Managed all the way down. The core package has no dependencies at all, and stays Native AOT and trimming friendly.
  • Streaming by default. Documents are read lazily and written forward-only.
  • Business documents, not the web. Full CSS box model, tables, paged media, flexbox and simple grid, inline SVG. No JavaScript.
  • Conformance as a constraint. Tagged PDF for accessibility, PDF/A-3 and Factur-X for archiving and e-invoicing, designed in from the start rather than bolted on.
  • Honest about damaged input. Real files are frequently malformed; the reader repairs what it can and reports precisely what it did.
  • Every valid PDF is readable. The guards against hostile files are on by default, reported when a document reaches one, and lifted by an option.

Packages​

One package exists today; the others are planned, and the milestone that brings each one is on the roadmap. Validation is part of the core package, not a satellite of its own; the satellite brings the PDF/A and PDF/UA profiles.

PackageContentsAvailable
AdCodicem.PdfObject model, lazy reader, validation, streaming writer, revisions, pages, fonts, logical structure, security, extraction, redactionPublished — the object model, the reader and the first validation rules so far
AdCodicem.Pdf.ToolThe command-line toolPlanned, M06
AdCodicem.Pdf.FontsThe OFL font set — Liberation Sans, Serif and Mono — as WOFF2Planned, M08
AdCodicem.Pdf.BarcodesVector barcodes and payment codesPlanned, M10
AdCodicem.Pdf.HtmlHTML parsing, CSS engine, layout, painting to PDFPlanned, M12
AdCodicem.Pdf.AspNetCoreDependency-injection and IResult integrationPlanned, M12
AdCodicem.Pdf.FacturXFactur-X and ZUGFeRDPlanned, M14
AdCodicem.Pdf.CaseFileLegal case files: pieces, inventories, court-portal presetsPlanned, M18
AdCodicem.Pdf.ConformancePDF/A and PDF/UA profiles for the validation enginePlanned, M20
AdCodicem.Pdf.ImagingImage decoders and lossless encoders for scansPlanned, M22
AdCodicem.Pdf.CompareComparison and templatesPlanned, M24
AdCodicem.Pdf.RenderingRasterizationPlanned, M25
AdCodicem.Pdf.SigningPAdES signing, long-term signatures, signature validationPlanned, M26
AdCodicem.Pdf.DocxDOCX to HTMLPlanned, M31